c语言在数组中输入一个数如何判断是否重复
有序数组二分法找, 无序数组要么排好序,要么遍历
int main ()
{
int n[ 10 ]; /* n 是一个包含 10 个整数的数组 */
int i,j,m;
/* 初始化数组元素 */
for ( i = 0; i < 9; i++ )
{
n[ i ] = i + 100; /* 设置元素 i 为 i + 100 */
}
n[9] = 105;
/* 输出数组中每个元素的值 */
int res = 0;
for (j = 0; j < 10; j++ )
{
printf("Element[%d] = %d\n", j, n[j] );
res = -1;
for ( m = 0; m < 10; m++ )
{
if (n[m] == n[j]) {
res ++;
}
}
printf("重复次数%d\n", res);
}
return 0;
}
排序+遍历
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[10];
int i=0;
for(i=0;i<10;i++)scanf("%d",a+i);
sort(a,a+10);
for(i=1;i<10;i++){
printf("a[%d]..%d ",i,a[i]);
int j=i;
int ans=0;
while(a[j]==a[j-1]){
j++,ans++;
}
printf("repeat..%d\n",ans);
}
return 0;
}
哈希, o(n)的时间复杂度