首页 > 软件 > c语言如何去一个有序数组重复的数字

c语言如何去一个有序数组重复的数字

软件 2023-03-30

C语言删除数组重复数字

#include "stdio.h"

#include "string.h"

void main()

{

int i,k=1,j=10,a[10]={4,4,4,4,5,4,9,9,9,10};

for(k=i=1;i<10;i++)

{

for(j=0;j

{

if(a[j]==a[i]) break;

}

if(j==k) a[k++]=a[i];

}

printf(" \n ");

for(i=0;i

{

printf(" %d ",a[i]);

}

扩展资料:

printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d\n",a);

输出结果为a=1234。

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include<stdio.h>。

int scanf(const char*restrict format,...);

函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

C语言中,如何用删除法删除数组中相同的数字

#include

intdel_same(intdate[],intn);

intdel_same(intdate[],intn)

{

inti,j,k=0;

for(i=0;i

{

for(j=i+1;j

if(!(j-n))//没有重复元素

date[k++]=date[i];//可将date[]看作两个数组

}

returnk;//返回删除后的有效长度

}

intmain(void)

{

intdate[1001],i,j,k,n;

printf("输入数据个数:");

scanf("%d",&n);

printf("输入数据:");

for(i=0;i

scanf("%d",date+i);

k=del_same(date,n);

for(i=0;i

printf("%-5d",date[i]);

return0;

}

扩展资料

C语言在数组中删去指定数字

#include

#include

intmain()

{

intn;

scanf("%d",&n);

intarray[10];

intarray_1[10];

intj=0;

for(inti=0;i<10;i++)

{

scanf("%d",&array[i]);

}

for(inti=0;i<10;i++)

{

if(array[i]!=n)

{

array_1[j]=array[i];

++j;//此时j++也是可以的;

}

}

for(inti=0;i

{

printf("%d",array_1[i]);

}

return0;

}

c语言排序后删除数组中重复的数字再排序输出

#include

#include

#defineSIZE81

voiddelete_repeat(char*str);

voidbubble_sort(char*str);

intmain()

{

charstr[SIZE];

gets(str);

delete_repeat(str);

bubble_sort(str);

puts(str);

return0;

}

//删除重复字符

voiddelete_repeat(char*str)

{

/**判断数组内第i个字符是否与前i-1个字符存在重复:

若重复,删除该字符,i之后的字符下标均减1,后重新判断新的第i个字符

若不重复,不做处理,继续遍历下一个

*/

for(inti=1;str[i]!='\0';i++){

for(intj=0;j

{

if(str[i]==str[j])

{

for(intk=i;k

{

str[k]=str[k+1];

}

str[strlen(str)-1]='\0';

i--;

}

}

}

}

//冒泡排序

voidbubble_sort(char*str)

{

intswap;

chartemp;

intk=strlen(str);

do{

swap=0;

for(inti=0;i

if(str[i]>str[i+1])

{

swap=1;

temp=str[i];

str[i]=str[i+1];

str[i+1]=temp;

}

}

k--;

}while(k>0&&swap);

}

扩展资料

删除排序数组中的重复项注意事项

不要使用额外的数组空间,必须在原地修改输入数组并在使用O(1)额外空间的条件下完成,意味着不能通过新建数组存放的方式解决。

可以考虑增加一个游标的方式(命名为:index),遍历整个数组,当遇到前一个和后一个不相等的时候就给游标自增,这样的话对于相同的元素可以直接跳过不统计,最后返回”游标的大小+1“(也即不重复的元素的个数)。

C语言,删除数组中的重复数字然后输出

#include "stdio.h"

#include "string.h"

void main()

{

int i,k=1,j=10,a[10]={4,4,4,4,5,4,9,9,9,10};

for(k=i=1;i<10;i++)

{

for(j=0;j

{

if(a[j]==a[i]) break;

}

if(j==k) a[k++]=a[i];

}

printf(" \n ");

for(i=0;i

{

printf(" %d ",a[i]);

}

扩展资料:

printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d\n",a);

输出结果为a=1234。

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include<stdio.h>。

int scanf(const char*restrict format,...);

函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

删除有序数组中的重复元素c语言

intremove(int*arr,intsz)
{
inti=0;
intindex=0;
for(i=1;i if(arr[index]!=arr[i]){ //依次向后比较,若不相等,则用arr[i]覆盖arr[index+1],否则(遇到的是重复元素),i往后移
arr[++index]=arr[i]; //当index与i之间没有其他元素,index+1就是i哦,相当于index后移,但是值没改变
} //当index与i之间有其他元素,那么这些元素必定是重复得了,直接覆盖掉
}
returnindex+1;
}

标签:数组 编程语言 编程 C语言 C(编程语言)

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18