首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个有关问题.不解~

2012-02-26 
一个问题.不解~!# include stdio.hint main (void){int n,mprintf(\n***\n)for (n1n*n200nn+4)

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

热点排行