标题:初次发贴,一个有趣的问题
只看楼主
孤独_浪子
Rank: 2
等 级:论坛游民
帖 子:52
专家分:60
注 册:2010-1-13
结帖率:100%
已结贴  问题点数:20 回复次数:11 
初次发贴,一个有趣的问题
我写了一个很简单的程序,就是用来比较两个数的大小,然后输出大数的程序。这是源码:
01.#include<stdio.h>
02.void main()
03.{
04.    int a,b;
05.    char c;
06.    while(1)
07.    {
08.        printf("please enter data:");
09.        scanf("%d,%d",&a,&b);
10.        putchar('\n');
11.        if(a>b) printf("max:%d",a);
12.        else printf("max:%d",b);
13.        putchar('\n');
14.        printf("\ndo you want to continue?N/Y");
15.        scanf("%c",&c);
16.        if(c=='n') break;
17.    }
18.}

这是结果:please enter data:54,45

max:54
do you want to continue?N/Y
please enter data:54,36

max:54
do you want to continue?N/Y
please enter data:n

test.rar (3.14 KB)

我的目的是由用户输入数据,程序比较输出大数,当输入为n是退出。(暂不考虑其他因素)
我的问题是:为什么会直接跳过第15句?而且再次执行08句时,我输入n却可以退出呢?自己想了半天都没搞清楚是怎么回事,麻烦有人能帮下忙,谢谢了先!
首次发帖,字打的不好看见笑了。
搜索更多相关主题的帖子: max continue include please 
2010-02-15 14:14
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:5 
有技术含量?
2010-02-15 14:26
孤独_浪子
Rank: 2
等 级:论坛游民
帖 子:52
专家分:60
注 册:2010-1-13
得分:0 
不是,我只是想知道为什么而已。
2010-02-15 14:36
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
得分:5 
回车的时候, '\n'已经传送给了c

胖胖的我~
2010-02-15 15:03
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
得分:2 
顶呀!高手回答

学习c语言痛苦!!但是要坚持~~
2010-02-15 15:09
CodeWays
Rank: 2
等 级:论坛游民
帖 子:62
专家分:61
注 册:2010-2-7
得分:5 
最简单的解决方法是加个getchar();

胖胖的我~
2010-02-15 15:39
孤独_浪子
Rank: 2
等 级:论坛游民
帖 子:52
专家分:60
注 册:2010-1-13
得分:0 
可是为什么再次执行08句的时候输入n会退出,而输入其他的不会呢?
还有这个getchar() 要加在哪里?

[ 本帖最后由 孤独_浪子 于 2010-2-15 16:35 编辑 ]
2010-02-15 16:06
void没什么
Rank: 2
来 自:山东莱芜
等 级:论坛游民
帖 子:15
专家分:13
注 册:2010-2-14
得分:3 
俺改了下子,高手多批评

01.#include<stdio.h>
02.int main() //void不标准
03.{
04.    int a,b;
05.    char c;
06.    while(1)
07.    {
08.        printf("please enter data:");
09.        scanf("%d,%d",&a,&b);
10.        if(a>b)
11.           printf("\nmax:%d\n",a);//去掉putchar函数调用
12.        else if(a==b) printf("\nequal\n");//要是相等这条就有用
13.        else printf("\nmax:%d\n",b);
14.        printf("\ndo you want to continue?N/Y");
15.        scanf("%c",&c);
16.        if(c=='n'&c=='N') break; //加入'N'
17.    }
18.return 0; //函数返回
19.}
2010-02-15 16:38
孤独_浪子
Rank: 2
等 级:论坛游民
帖 子:52
专家分:60
注 册:2010-1-13
得分:0 
找到了问题的所在了,谢谢CodeWays。
2010-02-15 19:34
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
得分:0 
知道了

学习c语言痛苦!!但是要坚持~~
2010-02-16 14:31



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




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

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