修改后题目C语言问题再问

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:03:35
#include <stdio.h>
main ()
{ int i,j,m=0,n=0;
for(i=0;i<2;i++)
{for (j=0;j<2;j++)
if (j>=i) m=1;n++;
printf ("%d \n",n);
}
}
为什么程序运行结果是1,而不是3,希望好心人能给出详细的分析,谢谢!

你这程序应该是会显示如下的结果:
1
2
3
4
搞错了吧···
程序是这样才会是1
#include <stdio.h>
main ()
{ int i,j,m=0,n=0;
for(i=0;i<2;i++)
{for (j=0;j<2;j++)
if (j>i) {m=1;n++;}
}
printf ("%d \n",n);

}

#include <stdio.h>
main ()
{ int i,j,m=0,n=0;
for(i=0;i<2;i++)
{for (j=0;j<2;j++)
if (j>=i) m=1;
n++;
}
printf ("%d \n",n);

}

这样应该行了

你这程序应该是会显示如下的结果:
1
2
3
4
5
6

i=0时:
-------j=0,m=1,n=1,输出1
-------j=1,m=1,n=2,输出2
i=1了:
-------j=0,n=3,输出3
-------j=1,m=1,n=4,输出4

答案应该是
1
2
3
4

#include <stdio.h>
main ()
{ int i,j,m=0,n=0;
for(i=0;i<2;i++)
{for (j=0;j<2;j++)
if (j>=i) m=1;n++; //LZ这个n++其实只属于第一层for循环的,第一层循环只循环两次,所以n的值也自加1两次,由0到2,所以也就只