由键盘输入20个整数,统计不重复的数字的个数

由键盘输入20个整数,统计不重复的数字的个数
如输入1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 则输出10,因为10个数重复
输入70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11
则输出16,因为有4个重复的数字

有一个程序的结构不错
#include<stdio.h>
main()
{
int a[20],i,j,n=0;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
{
for(j=i+1;j<20;j++)
if(a[i]==a[j])
n++;
}
printf("%d\n",20-n);
}
但是运行结果不正确,不知道问题出在哪``
大哥们会编程的帮帮偶吧,或者帮忙修改一下,看看哪里错了
小弟非常感谢~~~

你打算输入的数据是整数,或者小数,但是你的程序中你定义的是char
c;
接着你进行判断c是否小于0,我和你说,无论你输入什么,c都是大于零的,定义的数据类型不对;
另外,我建议在输出语句中可以加些辅助的信息,比如说printf("请输入语句,此时数据是多少");这样的信息,有利于你去查看,
帮你指出问题,代码自己试试,如果你是为了完成作业,我们可以给你代码,如果你是为了编程,我强烈建议自己调试,错了,代码发上来,我们帮你指出,同勉共进!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-04
这样可以了啊#include<stdio.h>
#include<iostream.h>
void main()
{
int a[20],i,j,n=0;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
{
for(j=i+1;j<20;j++)
if(a[i]==a[j])
{n++;break;}
}
printf("output no repeat");
printf("%d\n",n);
printf("output repeat");
printf("%d\n",20-n);
} 即输出了不重复的也输出了重复的
第2个回答  推荐于2016-12-01
#include<stdio.h>
main()
{
int a[20],i,j,n=0;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
{
for(j=0;j<i;j++)
if(a[i]==a[j]&&i!=j)
{n++;break;}
}
printf("%d\n",20-n);

}本回答被提问者采纳
第3个回答  2007-11-04
#include<stdio.h>
#include<iostream.h>
main()
{
int a[20],i,j,n=0;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
{
for(j=i+1;j<20;j++)
if(a[i]==a[j])
{n++;break;}
}
cout<<n<<endl;
//printf("%d\n",20-n);
}

加个break OK拉
第4个回答  2007-11-04
在main前加上void就可以了