嵌套循环比较数组中的int

时间:2012-04-11 04:54:59

标签: c arrays compare

这就是我所拥有的。它正在跳过零。我该如何解决这个问题?我正在尝试计算数字重复的次数。

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    

2 个答案:

答案 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],因为它已经完成(或已检查)。 增加计数器(重复匹配时)。一旦它结束阵列重置计数器的结束。然后打印出来。 我希望它有所帮助。仍然困惑,然后我将为您提供示例代码。