一个问题.不解~!
# include <stdio.h>
int main (void)
{
int n,m;
printf("\n***\n");
for (n=1;n*n<200;n=n+4)//这不明白.1.N*N=1,N+4=5..那第一次应该直接输出5.为什么还有输出个1?还有以这个逻辑推理下去.最后的值也不应该是结果中的那样啊!...
printf("%d\n",n);
printf("\n***\n");
for(n=2,m=6;n<m;n*=2,m+=2)//这也是同上的逻辑问题...情大家讲讲!
printf("%d %d\n",n,m);
printf ("\n***\n");
return 0;
}
输出结果:
***
1
5
9
13
***
2 6
4 8
8 10
***
[解决办法]
输出1是正确的,因为n首先被赋值为1,然后判断n*n的值,小于200就执行循环,打印出来肯定是1了.
等1打印好了,再执行n=n+4,然后判断n*n的值是否小于200,如果小于200打印出来就是5了.
看来楼主对循环还不太了解.继续加油.
[解决办法]
你可以先看下书上for循环是如何使用的
for (n=1;n*n <200;n=n+4)
n = 1 是循环开始时的赋值操作
然后判断 表达式n*n < 200是否为真,为真就执行循环体
执行完循环体就执行表达式:n = n +4
你自己zai理解下