c语言数组输出重复
① c语言,查找数组里重复出现的数字;
//如果这题目是在oj上,请去掉所有的注释
#include<stdio.h>
intmain()
{
//用数组下标1~104表示输入的数字
//用数组每个元素的值表示该下标对应的元素输入次数
inta[105]={0},i,n,ni,max;
scanf("%d",&n);
max=a[0];
for(i=0;i<n;i++)
{
scanf("%d",&ni);
a[ni]++;
if(max<a[ni])
max=a[ni];
}
for(i=104;i>0;i--)//想想为什么倒着比较
{
if(a[i]==0)continue;
if(max==a[i])
{
printf("%d%d ",i,a[i]);
break;
}
}
return0;
}
② c语言如何判断一个数组中重复元素的个数,并输出这个个数的值
如下:
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intn;
int*a;
inti;
scanf("%d",&n);
a=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
for(intj=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
inttmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
inttmp=a[0];
intcount=1;
for(i=1;i<n;i++)
{
if(tmp==a[i])
{
count++;
}
else
{
if(count>1)
{
printf("数组共有%d个数字%d ",count,a[i-1]);
}
tmp=a[i];
count=1;
}
}
if(count>1)
{
printf("数组共有%d个数字%d ",count,a[i-1]);
}
free(a);
return0;
}
我的思路是,先排序,再输出。
③ 在c语言中输入数组两个数组,查找重复元素并输出怎么写啊
可以一次读入N个数据。可以考虑以回车结束读入的一组。
参考如下写法:
#include "stdio.h"
#define Max 100
int X[Max]={0,},Y[Max]={0,};
int main()
{
int i=0,j=0;
int a,b;
char c=0;
printf("输入第一个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",X+i++,&c);
c=0;
printf("输入第二个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",Y+j++,&c);
for(a=0;a<i;a++)
for(b=0;b<j;b++)
if(X[a]==Y[b])
printf("%d \t",X[a]);
return 0;
}
④ C语言问题,删除整型数组内重复的项并输出,如能解惑,不胜感激。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain(intargc,char*argv[])
{
srand((unsigned)time(0));
ints[30]={0};
inti,j;
for(i=0;i<30;i++)
{
s[i]=rand()%10;
}
printf("
源数组:");
for(i=0;i<30;i++)
{
printf("%d",s[i]);
}
j=0;
while(j<30)
{
if(s[j]==-32767)
{
j++;
continue;
}
for(i=j+1;i<30;i++)
{
if(s[j]==s[i])
{
s[i]=-32767;
}
}
j++;
}
printf("
目标数组:");
for(i=0;i<30;i++)
{
if(s[i]!=-32767)
printf("%d",s[i]);
}
return0;
}
⑤ c语言排序后删除数组中重复的数字再排序输出
#include<stdio.h>
#include<string.h>
#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]!='