读书人

一个有关问题.不解~

发布时间: 2012-02-26 20:19:44 作者: rapoo

一个问题.不解~!
# 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理解下

读书人网 >C语言

热点推荐