标题:c语言switch语句求解
只看楼主
zheng3912930
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2011-11-10
结帖率:66.67%
已结贴  问题点数:20 回复次数:10 
c语言switch语句求解
int main()
{
    char a;
    printf("请输入1~2的数字\n");
    printf("输入字符!结束输入\n");
    a=getchar();
    while(a!='!')
        {
        switch(a){
        case '1': printf("你好!\n");break;
        case '2': printf("你太美了\n");break;
        
       default : printf("请重新输入:\n");
        }
        
        
        a=getchar();
        
        }

    return 0;
}
输出结果怎么总有一个重新输入啊
例如:输入 2
     输出 你太美了 请重新输入
搜索更多相关主题的帖子: c语言 数字 default return 
2012-02-24 20:55
姚杰
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:169
专家分:477
注 册:2010-6-1
得分:1 
选择语句才有两个,最好不要用switch,用if会更好些

[ 本帖最后由 姚杰 于 2012-2-24 21:33 编辑 ]

持之以恒,别留遗憾,加油
2012-02-24 21:19
tumenglin
Rank: 2
等 级:论坛游民
帖 子:7
专家分:42
注 册:2012-1-4
得分:3 
在a=getchar();前面再加a=getchar();就会去除这种情况!
2012-02-24 22:03
tumenglin
Rank: 2
等 级:论坛游民
帖 子:7
专家分:42
注 册:2012-1-4
得分:2 
或者直接改成if语句就好了!
 do
    {
        if(a=='1')
        printf("你好!\n");
        else if(a=='2')
        printf("你太美了\n");
        else
        printf("请重新输入:\n");

        a=getchar();
     }
2012-02-24 22:10
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:6 
程序代码:
#include <stdio.h>
int main()
{
    char a;
    printf("请输入1~2的数字\n");
    printf("输入字符!结束输入\n");
   
    while((a=getchar())!='!')
        {
            switch(a)
            {
                case '1': printf("你好!\n");break;
                case '2': printf("你太美了\n");break;
                default : printf("请重新输入:\n");
            }  
            getchar();
        }

    return 0;
}

梅尚程荀
马谭杨奚







                                                       
2012-02-24 22:18
回首依依
Rank: 7Rank: 7Rank: 7
来 自:苏州
等 级:黑侠
威 望:1
帖 子:193
专家分:524
注 册:2011-12-3
得分:6 
int main()
 {
     char a;
     printf("请输入1~2的数字\n");
     printf("输入字符!结束输入\n");
     a=getchar();
     while(a!='!')
        {
         switch(a){
        case '1': printf("你好!\n");break;
         case '2': printf("你太美了\n");break;
         
        default : printf("请重新输入:\n");
         }
         
         getchar();
         a=getchar(); //实际操作时,这里读入的是回车哦。在前添一个getchar()用于清除回车的影响。
        
         }
 
    return 0;
 }
 
2012-02-24 23:27
zheng3912930
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2011-11-10
得分:0 
回复 4楼 tumenglin
其实,我的条件很多
为了方便,我只写了两个
还是谢谢你!
2012-02-25 11:48
zheng3912930
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2011-11-10
得分:0 
以下是引用回首依依在2012-2-24 23:27:46的发言:

int main()
 {
     char a;
     printf("请输入1~2的数字\n");
     printf("输入字符!结束输入\n");
     a=getchar();
     while(a!='!')
        {
         switch(a){
        case '1': printf("你好!\n");break;
         case '2': printf("你太美了\n");break;
         
        default : printf("请重新输入:\n");
         }
         
         getchar();
         a=getchar(); //实际操作时,这里读入的是回车哦。在前添一个getchar()用于清除回车的影响。
        
         }
 
    return 0;
 }
 
那也就是说,我用scanf函数就没有回车的影响了是吧
我试试啊
2012-02-25 11:50
zheng3912930
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2011-11-10
得分:0 
回车也是一个字符啊?
2012-02-25 12:02
回首依依
Rank: 7Rank: 7Rank: 7
来 自:苏州
等 级:黑侠
威 望:1
帖 子:193
专家分:524
注 册:2011-12-3
得分:2 
回复 9楼 zheng3912930
换成scanf也有影响的。转义字符中有一个是表示回车的,你自己一看就知道啦。
2012-02-25 17:21



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




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

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