如何计算数组中有多少个?

时间:2016-06-13 02:19:15

标签: c

我有这个功能,我希望你的帮助找到是否有多个最大值。如果存在多个最大值,我想打印“no unique max”。

下面的代码成功找到了最大值,但是计数器会反对最大值出现的次数不起作用,我收到此消息:

  

在c

中建议围绕空体的大括号
int find_max(int b[N][N])
{
   int max = b[0][0];
   int x,y;
   int counter=0;
   int a=0,v=0,c=0;
   for (x = 0; x < N; x++)
   {
       for (y = 0; y < N; y++)
       {
           if (max < b[x][y])
           {
               max = b[x][y];
                a=x;
                v=y;
           }
       }
   }

    c=((a*10)+v);
    for (x = 0; x < N; x++)
   {
       for (y = 0; y < N; y++)
       {
           if(max);
           {
           counter++;
           }
       }
   }
 if(counter>1)
   printf("no uniqe max");
else
   return c;
}

2 个答案:

答案 0 :(得分:2)

我认为问题(至少有一个问题)是以下几行:

if(max);

如果max不为零,那么这将永远为真。我想你想要的东西:

if(b[x][y] == max)

(注意:比较和删除';')

警告是(我怀疑)来自';'在'if'之后,这将终止if和下一节“{...}”始终执行,它与if无关。

答案 1 :(得分:1)

乍一看:

if(max == b[x][y]) // not if(max);
{
  counter++;
}