请问这个C语言程序哪里错了?输出结果不对

来源:百度知道 编辑:UC知道 时间:2024/07/07 16:09:08
程序目的:已知一个数组,里面有10个数。其中4个相同。如何输出者4个相同数?

我用了二重循环,让a[1]到a[9]分别与a[0]去比较.如果有相同的,就存到b[0]中.如果没有相同的,就让a[2]到a[9]分别与a[1]去比较.以此类推.可是输出的b[]始终不是我想要的结果.谁帮忙看一下,多谢了

#include <stdio.h>
int main()
{
int a[10]={1,2,3,3,3,3,4,5,6,7}; //原数组
int b[10]={0,0,0,0,0,0,0,0,0,0}; //存放相同数的数组
int i,comp;
for(comp=0;comp<9;comp++)
{
for(i=1;i<10;i++)
{
if(a[i]==a[comp])
{
b[i-1]=a[i];
}
}
}
for(i=0;i<10;i++)
{
printf("%d\n",b[i]);
}
return 0;
}

这样?

#include <stdio.h>
int main()
{
int a[10]={1,2,3,3,3,3,4,5,6,7};
int b[10]={0,0,0,0,0,0,0,0,0,0};
int i,j=0,comp;

for(comp=0;comp<=9;comp++)
{
for(i=1;i<10;i++)
{
if( (a[i]==a[comp])
&& (i != comp) )
{
b[j++]=a[i];
break;
}
}
}
for(i=0;i<j;i++)
{
printf("%d\n",b[i]);
}
return 0;
}