标题:到底哪里出错了?
只看楼主
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
结帖率:88.89%
已结贴  问题点数:20 回复次数:11 
到底哪里出错了?
/* 输入一个数,如果打于6输出“yes”,否则输出“NO”并提示是否继续输入 */

#include<stdio.h>
#include<stdlib.h>
void main()
{

    char c;
    int i=0;
    printf("Enter a num:");
    scanf("%d",&i);
        
        
        while(i<6)
        {
            
        printf("NO \n");
        printf("Input Y/N to continue!");
        scanf("%c",&c);         //总是不能实现输入c这步
        if(c=='Y')
        {
            printf("Enter a num:");
            scanf("%d",&i);
        
        }
        else exit(1);

        };
        
        
   
    printf("YES\n");



}
是什么问题呢?是编译器问题还是代码问题?
如果输入:5
显示是
"NO
Input Y/N to continue!Press any key to continue"

[ 本帖最后由 锋了 于 2012-10-27 10:39 编辑 ]
搜索更多相关主题的帖子: Enter include continue void 
2012-10-27 10:36
Y影子Z
Rank: 3Rank: 3
来 自:石家庄
等 级:论坛游侠
帖 子:54
专家分:110
注 册:2012-10-12
得分:3 
输入5后,你会敲一下回车,这样,这个回车就被scanf("%c",&c)接收了,这样永远不会等于Y;
printf("NO \n");
printf("Input Y/N to continue!");
fflush(stdin);          //在这添一句;
scanf("%c",&c);         //总是不能实现输入c这步

有光明必然会有黑暗,而影子,就是光明与黑暗的缝隙
2012-10-27 10:52
w995612220
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:139
专家分:313
注 册:2012-6-20
得分:2 
getchar()也能吸收回车
2012-10-27 10:53
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
得分:2 
注意空格也是字符,这点特别重要。

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-10-27 10:57
xlc2845
Rank: 2
等 级:论坛游民
帖 子:18
专家分:36
注 册:2012-10-20
得分:3 
        getchar();
        printf("NO\n");
        printf("Input Y/N to continue!");
2012-10-27 11:05
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
得分:0 
回复 4楼 一个孩子
这个哪里空格出问题了吗?
2012-10-27 11:13
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
得分:0 
回复 5楼 xlc2845
多谢解答!!
你这个是可以的,但是是什么原理呢?
2012-10-27 11:18
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
得分:0 
回复 2楼 Y影子Z
多谢解疑!!!
但是敲回车不是应该输入5吗?为什么会出这个问题呢?
2012-10-27 11:20
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
得分:0 
回复 2楼 Y影子Z
有什么区别呢?
scanf("%d%d%d",&a,&b,&c)能输入a,b,c;
换成
scanf("%d",&c);
scanf("%d",&b);
scanf("%d",&c);
也能输入a,b,c但是都不会出现我上面程序的问题,为什么呢?
2012-10-27 11:26
xlc2845
Rank: 2
等 级:论坛游民
帖 子:18
专家分:36
注 册:2012-10-20
得分:2 
回复 7楼 锋了
因为回车也是字符,先把回车读进去就可以执行

[ 本帖最后由 xlc2845 于 2012-10-27 12:16 编辑 ]
2012-10-27 12:13



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




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

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