C - MAX_VAL逻辑违反规则并输出 5 > 7 并在之后继续工作



编写此代码以找出MAX数字。代码和逻辑是正确的,但有一步它违反了将5输出为大于7的值并在之后继续工作的规则。这里出了什么问题?

int main(void)
{
int maxVal = 0;
int num[6] = { 2, 1, 3, 7, 5, 8};
//here is the problem
for (int x = 0; x < 6;  x++)
{
maxVal = num[0];
if (num[x] >= maxVal)
{
maxVal = num[x]; 
printf("The max num is: %dn", maxVal);
}
}
printf("n");
printf("The final max num is: %dn", maxVal);
return 0;
}

使用以下方法

int num[6] = { 2, 1, 3, 7, 5, 8};
int maxVal = num[0];
//here is the problem
for (int x = 1; x < 6;  x++)
{
if ( num[x] >= maxVal)
{
maxVal = num[x]; 
printf("The max num is: %dn", maxVal);
}
}

否则,由于for循环中的此语句,您总是将num[0]与当前元素num[x]进行比较

for (int x = 0; x < 6;  x++)
{
maxVal = num[0];
//...

最新更新