| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 939 人关注过本帖
标题:求助怎么用while控制程序的多次循环
只看楼主 加入收藏
bbbromm
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-27
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:9 
求助怎么用while控制程序的多次循环
请问高手们,为什么里面那个do-while可以正常运行,而外面那个连scanf("%c",&yn);都不执行?

#include<stdio.h>
void main()
{
    int a,b,k,j;
    char yn;
    b=0;
    do
    {
        do
        {
           printf("输入a:");
           scanf("%d",&a);
           if(a>10)
           {
            printf("太大了,");
            k=1;
           }
           else k=0;
        }
        while(k);
        b=a+a;
        printf("\n");
        printf("%d\n",b);
        printf("是否要继续? Y/N\n");
        scanf("%c",&yn);
        if(yn=='Y'||yn=='y') j=1;
        else j=0;
    }
    while(j);
}
搜索更多相关主题的帖子: include while 
2010-08-05 11:05
bbbromm
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-27
收藏
得分:0 
如果我直接改成scanf("%d",&j); 就可以运行了,怎么回事?教教我,不胜感激。
2010-08-05 11:10
狮子。
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:64
专家分:58
注 册:2010-8-1
收藏
得分:0 
你内层循环第一个k=1应该和k=0的位置交换,不然会一直只执行内层循环~

当你小有成绩,打算沾沾自喜时。不知道有多少比你强的人正在埋头奋进!
2010-08-05 11:11
bbbromm
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-27
收藏
得分:0 
scanf("%c",&yn); 还是不能执行的,
2010-08-05 11:30
andylyop12
Rank: 2
等 级:论坛游民
帖 子:10
专家分:17
注 册:2010-4-3
收藏
得分:1 
#include<stdio.h>
void main()
{
    int a,b,k,j;
    char yn;
    b=0;
    do
    {
        do
        {
           printf("输入a:");
           scanf("%d",&a);
           if(a>10)
           {
            printf("太大了,");
            k=1;
           }
           else k=0;
        }
        while(k);
        b=a+a;
        printf("\n");
        printf("%d\n",b);
        printf("是否要继续? Y/N\n");
        getchar();
        scanf("%c",&yn);
        if(yn=='Y'||yn=='y') j=1;
        else j=0;
    }
    while(j);
}
加个getchar()就行了
2010-08-05 11:40
bbbromm
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-27
收藏
得分:0 
搜索了以前的帖子,原来是要在前写个getchar()来吸收回车符
2010-08-05 11:40
bbbromm
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-27
收藏
得分:0 
回复 5楼 andylyop12
多谢啊,不过还是不太清楚吸收回车符啥意思
2010-08-05 11:42
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:1 
在scanf()后面加上这句
fflush(stdin);

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-08-05 11:44
andylyop12
Rank: 2
等 级:论坛游民
帖 子:10
专家分:17
注 册:2010-4-3
收藏
得分:3 
你不加getchar()的话,下面的scanf()读的是回车(这时回车还在输入缓存中,所以按8楼的方法刷新下也可以)
2010-08-05 11:48
bbbromm
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-7-27
收藏
得分:0 
学习了,我要好好记一记,多谢高手指点
2010-08-05 17:03
快速回复:求助怎么用while控制程序的多次循环
数据加载中...
 
   



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

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