这就是我所拥有的。它正在跳过零。我该如何解决这个问题?我正在尝试计算数字重复的次数。
void hit_rate(int a, int cmset[])
{
int i, j, k=0;
for(i=0;i<a;i++){
for(j=i;j<a;j++){
if((cmset[i] == cmset[j])){
k++;
}
}
printf("%d\n",k);
k=0;
}
}
cmset k **now** prints
4 2
6 1
0 3
0 2
0 1
1 1
2 1
4 1
答案 0 :(得分:3)
应为for(j=0;
j<a
;j++)
答案 1 :(得分:3)
在计算重复时,
例如arr[5] = {1, 2, 2, 3, 3};
从
i = 0; // first loop
j = i; //2nd loop
comapre arr[i] == arr[j]; //condition
如果你用所有i = 1..4测试了arr [0],会发生什么?
在下一次迭代中,您不需要使用arr [0]检查[1],因为它已经完成(或已检查)。
增加计数器(重复匹配时)。一旦它结束阵列重置计数器的结束。然后打印出来。
我希望它有所帮助。仍然困惑,然后我将为您提供示例代码。