【问题标题】:nested loop comparing ints in an array嵌套循环比较数组中的整数
【发布时间】:2012-04-11 04:54:58
【问题描述】:

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

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    

【问题讨论】:

  • for(j=0;j&lt;=1;j++) 对吗?

标签: c arrays compare


【解决方案1】:

在计算重复项时, 例如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] 检查 a[1],因为它已经完成(或检查)。 增加计数器(当重复匹配时)。一旦它结束了阵列重置计数器的结束。并打印出来。 我希望它有所帮助。还是一头雾水,我给你提供示例代码。

【讨论】:

    【解决方案2】:

    应该是for(j=0;j&lt;a;j++)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-16
      • 2017-09-18
      • 2015-05-16
      • 2020-02-22
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多