我有这个功能,我希望你的帮助找到是否有多个最大值。如果存在多个最大值,我想打印“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;
}
答案 0 :(得分:2)
我认为问题(至少有一个问题)是以下几行:
if(max);
如果max不为零,那么这将永远为真。我想你想要的东西:
if(b[x][y] == max)
(注意:比较和删除';')
警告是(我怀疑)来自';'在'if'之后,这将终止if和下一节“{...}”始终执行,它与if无关。
答案 1 :(得分:1)
if(max == b[x][y]) // not if(max);
{
counter++;
}