| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 550 人关注过本帖
标题:求助,这段代码为什么执行到一半就直接退出了?
只看楼主 加入收藏
LowryD
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-3-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
求助,这段代码为什么执行到一半就直接退出了?
程序如下,但是执行到“printf("Do you wish to add more numbers(y/n)\n");”就不往下执行了,这是为什么呢?求指点。
#include<stdio.h>
int main(void)
   
{
 int a,b,c;
 char ch;
 while(1)
 {
    printf("Enter values of a and b\n");
    scanf("%d%d",&a,&b);
    c=a+b;
    printf("a + b =%d\n",c);
    printf("Do you wish to add more numbers(y/n)\n");
    scanf("%c",&ch);
    if(ch=='y'||ch=='Y')
        continue;
    else
        break;
 }
 return 0;
}
搜索更多相关主题的帖子: continue numbers return values Enter 
2014-03-23 00:08
zhou78yang
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:18
专家分:100
注 册:2014-3-18
收藏
得分:10 
我觉得问题出在 scanf("%c",&ch);这里,
因为你在输入a,b的时候按了回车,所以这算是输入了一个字符吧
printf("Do you wish to add more numbers(y/n)\n");
    scanf("%c",&ch);
改成printf("Do you wish to add more numbers(y/n)\n");
    scanf("%c",&ch);
    scanf("%c",&ch);
就能运行了。
另外,我觉得你应该是想用结果再加上一个加数吧,但你这样写却是重新输入一个加法算式了
我改动了一下:
#include<stdio.h>
int main(void)
{
    int a,b,c;
    char ch;

    printf("Enter values of a and b\n");
    scanf("%d%c%d",&a,&ch,&b);
    c=a+b;
    printf("=%d\n",c);
    printf("Do you wish to add more numbers(y/n)\n");
    scanf("%c",&ch);
    scanf("%c",&ch);
    while(ch=='y'||ch=='Y')
    {
        printf("Enter values of b\n");
        scanf("%d",&b);
        c=c+b;
        printf("c+b=%d\n",c);
        printf("Do you wish to add more numbers(y/n)\n");
        scanf("%c",&ch);
        scanf("%c",&ch);
    }
    return 0;
}

[ 本帖最后由 zhou78yang 于 2014-3-23 01:56 编辑 ]
2014-03-23 01:48
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:10 
#include<stdio.h>
int main(void)
   
{
int a,b,c;
char ch;
while(1)
{
    printf("Enter values of a and b\n");
    scanf("%d%d",&a,&b);
    getchar();    //---接收输入后的回车符
    c=a+b;
    printf("a + b =%d\n",c);
    printf("Do you wish to add more numbers(y/n)\n");
    scanf("%c",&ch);
    if(ch=='y'||ch=='Y')
        continue;
    else
        break;
}
return 0;
}

[ 本帖最后由 ying8501 于 2014-3-23 07:26 编辑 ]
2014-03-23 07:18
LowryD
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-3-22
收藏
得分:0 
非常感谢二位的解答!
2014-03-23 10:14
lc7741
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2014-3-19
收藏
得分:0 
2014-03-23 15:24
快速回复:求助,这段代码为什么执行到一半就直接退出了?
数据加载中...
 
   



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

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