标题:<求助>一个关于循环退出的部题
只看楼主
jackface
Rank: 2
等 级:论坛游民
帖 子:63
专家分:17
注 册:2009-4-15
结帖率:93.75%
已结贴  问题点数:20 回复次数:2 
<求助>一个关于循环退出的部题
#include<stdio.h>
#include<windows.h>
void main()
{
    int num1,num2,num3;
    num1=num2=1;
   
     do{
        printf("num1=%d\n",num1);
         num3=num1+num2;
         num1=num2;
        num2=num3;
        }while(num1>=100);//为什么这里加了条件不起作用?
     system("pause");
}  
搜索更多相关主题的帖子: include system 
2009-09-09 18:02
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
得分:15 
while里表达式为真才起作用,初始num1是小于100的数,表达式num1>=100为假,不执行循环。
表达式为num1<=100就可以了。

努力—前进—变老—退休—入土
2009-09-09 18:16
jetlif
Rank: 2
等 级:论坛游民
帖 子:7
专家分:28
注 册:2009-8-19
得分:5 
程序代码:
#include<stdio.h>
#include<windows.h>
void main() 
{
    int num1,num2,num3;
    num1=num2=1;
    
     do{ 
        printf("num1=%d\n",num1);
         num3=num1+num2;
         num1=num2;
        num2=num3;
        }while(num1>=100);//为什么这里加了条件不起作用?
     system("pause");
} 
do....while型循环,先不管条件,执行一次,然后去判断条件,执行一次后,num1的值变为num2的值,还是1,但比100小,说明不满足你的num1>=100,所以跳出了循环。应该是<=100,并且,你打印的应该是num3吧?
综合起来改成如下:
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int num1,num2,num3;
   num1=1;num2=1;
   do
   { 
   num3=num1+num2;
   printf("num3=%d\n",num3); 
    num1=num2;
    num2=num3;    
}while(num1<=100);           
  system("PAUSE");    
  return 0;
}
打印结果:
num3=2
num3=3
num3=5
num3=8
num3=13
num3=21
num3=34
num3=55
num3=89
num3=144
num3=233
请按任意键继续. . .
——————————
不知道是不是满足你的要求?
2009-09-09 18:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-285243-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.290570 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved