<分区>
我需要编写一个程序,我必须打印数组中出现两次或两次以上的数字。为了使事情更简单,我正在处理一个排序数组。
这是我的代码。
#include <stdio.h>
int main()
{
int n,i;
int a[10]={2,2,2,4,6,6,9,10,10,11};
printf("%d\n",a[10]);
for(i=0;i<10;++i)
{
if(a[i]==a[i+1] && a[i]!=a[i-1])
printf("%d ",a[i]);
else
continue;
}
return 0;
}
代码似乎工作正常,但我不喜欢我的代码,因为在某些时候,循环将 a[0] 的值与 a[-1] 和 a[9] 的值与 a[10] 以及两者的值进行比较这些 a[-1] 和 a[10] 是垃圾值。我确信有更好的方法可以做到这一点,但我想不出任何方法。
另外,我需要扩展上面的程序来计算重复数字的频率。
感谢您的帮助。谢谢!