这个程序输出 1。我不明白它是如何输出 1 的,因为 for 循环将在包含值 12 的 a[2][3]
处失败。所以 12 将被分配给 k并且输出必须是 12。
#include<stdio.h>
int main()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int i,j,k=99;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
if(a[i][j]<k)
{
k=a[i][j];
printf("%d\n",k);
}
}
}
printf("Res:%d\n",k);
return 0;
}
最佳答案
第一次通过循环时,if 被计算为 a[0][0] < k,即 1 < 99,为真。 如果 if 是 a[1][0] < k,即 2 < 1,则第二次通过他循环,则评估为 false,因此 k 的值不会更新 k 永远不会被重新分配另一个值,因此最后 k=1。
关于c - for循环中的if条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7063177/