C语言如何删除数组中的重复元素,C语言删除一个整型数组里面重复的元素

2020-11-22 07:57:17 字数 6762 阅读 9880

1楼:

//#include "stdafx.h"//vc++6.0加上这一行.

#include "stdio.h"

void main(void),ln;

for(ln=sizeof(a)/sizeof(int),k=i=1;i=k) a[k++]=a[i];

}for(i=0;i

printf("\n");}

c语言删除一个整型数组里面重复的元素

2楼:匿名用户

利用双重循环,将每个值依次与其后面的值相比较,如果有相同的则删除该元素即可。

删除时,可以使用将后面元素依次向前移动一位,同时总长度减一的方式。

参考**如下:

intremove_repeat(int*a,intl){inti,j,k;

for(i=0;i

3楼:周小狐狸爱我

int elimination(int a, int count)}}

return count;}

4楼:匿名用户

我跟你直接说思路吧,他们这样的双重循环数组太大的话很耗时间的,你可以,先给数组排序,然后删除多余的数就很耗操作了,只需要看相邻的数就可以了。

5楼:匿名用户

int i, j;

int buf = ;

int count = strlen(buf);

for(i = 0; i < count; i++)}}buf[count] = '\0';

提供给你个思路 我没有调试,不过思路我觉得不错!

就是从数组里第一个元素开始找相同的,如果相同就把 相同元素和数组最后一位交换,下一个相同的就和数组倒数第二位交换,最后把 count位变成‘/0’,最后打印数组。

6楼:匿名用户

for(int i=0; iif(arr[j]=arr[i])length--;

break;}}}

7楼:匿名用户

将第一个元素输出,再后面的一个个与前面的比较,有相等的就继续循环,不等的就输出,用for语句做

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

8楼:

//#include "stdafx.h"//vc++6.0加上这一行.

#include "stdio.h"

void main(void),ln;

for(ln=sizeof(a)/sizeof(int),k=i=1;i=k) a[k++]=a[i];

}for(i=0;i

printf("\n");}

9楼:匿名用户

#include

#define n 1000

#define flag 0x80000000 /*特殊标记,用最小的负数表示*/

void main( )

}for(i = 0; r[i] != flag; i++); /*找到第一个特殊标记*/

for(j = i + 1; j < length;) /*删除数列中的特殊标记*/

length = i; /*修改删除重复值后的数列的长度*/for(i = 0; i < length; i++)printf("%-4d", r[i]);}

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

10楼:会飞的小兔子

#include

intdel_same(intdate,intn);

intdel_same(intdate,intn)returnk;//返回删除后的有效长度

}intmain(void)

扩展资料c语言在数组中删去指定数字

#include

#include

intmain()

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

}for(inti=0;i

return0;}

11楼:zhōu光

main()

;t=a[0]; /*把第一个数赋给t*/for(i=1;i<10;i++)

/*后面补0*/

t=a[i+1]; /*把下一个数赋给t*/}for(i=0;i<10;i++)/*输出*/printf("%d",a[i]);}

12楼:匿名用户

#include

#include

#include

intsimplification(inta,intn)}}

returnn;

}intmain()

printf("\n");

n=simplification(a,n);

printf("去除相同元素后:\n");

for(i=0;i

return0;}

13楼:匿名用户

void main()

;for(int m=0;m否有相同的*/

}}for(i=0;i

14楼:刘袁拓

#include

int main()

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

printf("\n");

getchar();

getchar();}

15楼:灬朋朋灬

才5分啊

让别人抢去吧

16楼:可爱的小知道

要是想用牛刀的话,可以用vector 或list.哈哈哈.

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

17楼:凌乱心扉

#include "stdio.h"

#include "string.h"

void main()

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

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

}printf(" \n ");

for(i=0;i

18楼:荒村归来

楼主程序有问题的地方:k值的初始化(k需要在每次循环时 跟j同时初始化)

楼主在循环对比a、b时,除了第一次执行循环时,对k初始化了,后面执行循环时,由于k没有初始化,故导致k越来越大,而j却在每次循环时,初始化了,故无论如何k,j都不会出现相等的。

19楼:汽水

#include

#define n 10 //数组长度

void main()

for(i=0;i

if(sg==0)

printf("%d\t",a[i]);//输出不是重复的数}printf("\n重复的数共计:%d个\n",count);

}这是我的**,。。。。已经有人给出了,和我的思路差不多,说说你的想法,你的算法应该有问题

20楼:田真久

#include

intmain()

{intn,i,j,arr1[100],arr2[100];

intindex=0,count,current=0;//current记录当前是否重复count记录重复多少次

scanf("%u",&n);

for(i=0;i查是

否有和当前数字重复的

for(j=0;j

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

21楼:匿名用户

intremove(int*arr,intsz)//当index与i之间有其他元素,那么这些元素必定是重复得了,直接覆盖掉

}returnindex+1;}

22楼:编**的没意思

如果注意到是有序,你还是要问的话= =

c语言 去掉数组中重复的元素····求帮助

23楼:飞丶逐梦

#include

int main()

;int i;

int j;

for(i=0;i<12;i++)

for(j=0;j!=0)

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

}我这个方法不适用与数组中有0的情况,如果数组中有0的话,可以把a[i]=0和if(a[i]!=0)上的0改成其他数组中没有的数就行了

24楼:匿名用户

我用的是字符数组。。。其实方法都一样。。#include#include

#define maxsize 100int main()i--;}}

i = 0;

while( array[i] != '\0' )printf( "\n" );

return 0;}

25楼:匿名用户

说的不是很清楚,数组定义的时候就删除?看来你对数组的操作还不是很清楚,应该是在数据写入数组的时候将其删除吧。你可以这样,如果数组不大,在写入数据的时候先遍历一遍数组看看数组中是否有该数据,如果有那么就不把数据写入数组,如果没有就接着最后一个元素写入数组就可以了。

26楼:匿名用户

for(int i = 0; i < sizeof(a)/sizeof(a[0]);i++)

}if(bexsit == false)}

27楼:匿名用户

#include

int main()

else j++;

}i++ ; }

puts(str);}

28楼:董俊锟

#include

void main()

}for(i = 0; i < k; i++)}

c语言问题 把一个数组中的重复元素去掉

29楼:凌乱心扉

#define _crt_secure_no_deprecate#include

#include

#include

using namespace std;

去掉字符串中重复的字符并排序

int main()}}

int newsize = input.size() - count;

string str(newsize,'0'); //创建一个长为newsize,用‘0’填充的字符串

int j = 0;

for (int i = 0; i < input.size(); i++)

}sort(str.begin(), str.end());

cout << str<}}

30楼:用着追她

1、首先,点击桌面上的vc++6.0,打

开软件。

2、打开软件之后,点击右上方的【文件】【新建】。进入后,再点击【文件】,选择c++ source file.最后点击【确定】。

3、输入**(定义数组): int i;int x[7]; for(i=0;i<7;i++)。

4、输入**(对元素进行倒序排列):for(i=0;i<3;i++) 。

5、电击界面上方的感叹号,开始运行。输入数组的数据。

31楼:匿名用户

先排序,在进行遍历比较。

#include

//升序数组src

voidsort(int*src,intlen)}}intmain()

,d;

inti=0,**t;

sort(num,10);//排序d=num[0];

for(i=1;i<10;i++)//遍历比较}if(num[9]==d)

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

return0;}

32楼:

intmain()

for(i=0;i<9-m;i++)//i<=9---->i<9-mm++;

j=i+1;

}else

j++;}}

for(i=0;i<=9-m;i++)

return0;

}其实就是改了下循环条件而已(既然下面的循环都用了m了,为什么上面不用呢)

33楼:南瓜猪的的的

基本思路

先将数组排序

拷贝数组去重

#include

inta=;

intb[16];

intless(void*a,void*b)intunique(int*input,constintsize_input,int*ans)

qsort(a,size_input,sizeof(int),less);

ans[size_ans]=input[0];

for(;ii

C语言数组中重复的数据都不要,C语言编程:判断数组里有没有重复数字,有true,无false

1楼 匿名用户 首先要确定数组中存的是什么类型的数据,之后strlen他的长度,从0开始到strlen a 10 2为止,两个for循环比较,如果相等,删除那两个数据 就是将他赋值为空 就是这样 2楼 匿名用户 void main b 10 int i j k 0 c 0 for i 0 i str...