| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5582 人关注过本帖
标题:求助,输出的一直是问号
只看楼主 加入收藏
Archangel
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2012-3-18
结帖率:100%
收藏
 问题点数:0 回复次数:13 
求助,输出的一直是问号
图片附件: 游客没有浏览图片的权限,请 登录注册
要求是输入1~13之间的数,输出对应的扑克牌号码,但是我怎么调试显示的都是“?”


#include <stdio.h>
main()
{
    int a;
    char ch;
    printf("请输入一个1~13之间的整数\n");
    scanf("%d",&a);
    if(a>13||a<1)
        printf("对不起您输入的数字有误,请重新输入\n");
    else
    {switch(a)
    {
        case '1':
            ch='A';
            break;
        case '2':
            ch='2';
            break;
        case '3':
            ch='3';
            break;
        case '4':
            ch='4';
            break;
        case '5':
            ch='5';
            break;
        case '6':
            ch='6';
            break;
        case '7':
            ch='7';
            break;
        case '8':
            ch='8';
            break;
        case '9':
            ch='9';
            break;
        case '10':
            ch='T';
            break;
        case '11':
            ch='J';
            break;
        case '12':
            ch='Q';
            break;
        case '13':
            ch='K';
            break;
    }
    printf("对应的扑克牌是%c\n",ch);
    }
}
搜索更多相关主题的帖子: include 
2012-03-18 21:45
jianyuling00
Rank: 3Rank: 3
来 自:琼州学院
等 级:论坛游侠
帖 子:89
专家分:177
注 册:2012-3-17
收藏
得分:0 
把case的单引号去掉

ch的赋值就不用了


[ 本帖最后由 jianyuling00 于 2012-3-18 21:50 编辑 ]
2012-03-18 21:48
nicum
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:180
专家分:712
注 册:2011-2-1
收藏
得分:0 
case '1': // case 1:
下同
2012-03-18 21:49
Archangel
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2012-3-18
收藏
得分:0 
不行啊,例如我把'A'的单引号去掉,提示说该字符未指定;而如果改成对应的ASCII码,输出的依然是问号呀……郁闷死了啊!
2012-03-18 21:50
Archangel
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2012-3-18
收藏
得分:0 
恩恩,解决了啊,谢谢各位大大了~
顺便问一下,case后面的引号加不加有什么区别啊?
2012-03-18 21:53
zd1505675319
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:178
注 册:2011-11-4
收藏
得分:0 

#include <stdio.h>
main()
{
    int a;
    char ch;
    printf("请输入一个1~13之间的整数\n");
    scanf("%d",&a);
    if(a>13||a<1)
        printf("对不起您输入的数字有误,请重新输入\n");
    else
    {switch(a)
    {
        case 1:
            ch='A';
            break;
        case 2:
            ch='2';
            break;
        case 3:
            ch='3';
            break;
        case 4:
            ch='4';
            break;
        case 5:
            ch='5';
            break;
        case 6:
            ch='6';
            break;
        case 7:
            ch='7';
            break;
        case 8:
            ch='8';
            break;
        case 9:
            ch='9';
            break;
        case 10:
            ch='T';
            break;
        case 11:
            ch='J';
            break;
        case 12:
            ch='Q';
            break;
        case 13:
            ch='K';
            break;
    }
    printf("对应的扑克牌是%c\n",ch);
    }
}
把常量 的单引号去掉!!!
2012-03-18 21:54
喝醉的猫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:68
专家分:120
注 册:2012-3-13
收藏
得分:0 
经检验上面两位说的是正确的嘿嘿
2012-03-18 21:55
木头lbj
Rank: 7Rank: 7Rank: 7
来 自:黄山
等 级:黑侠
威 望:1
帖 子:269
专家分:527
注 册:2010-11-6
收藏
得分:0 
你太粗心啦   这里的a是int型的,你的case语句里面的数字全用单引号括起来了,那就是char型啦。
程序代码:
#include <stdio.h>
main()
{
    int a;
    char ch;
    printf("请输入一个1~13之间的整数\n");
    scanf("%d",&a);
    if(a>13||a<1)
        printf("对不起您输入的数字有误,请重新输入\n");
    else
    {switch(a)
    {
        case 1:
            ch='A';
            break;
        case 2:
            ch='2';
            break;
        case 3:
            ch='3';
            break;
        case 4:
            ch='4';
            break;
        case 5:
            ch='5';
            break;
        case 6:
            ch='6';
            break;
        case 7:
            ch=7;
            break;
        case 8:
            ch='8';
            break;
        case 9:
            ch='9';
            break;
        case 10:
            ch='T';
            break;
        case 11:
            ch='J';
            break;
        case 12:
            ch='Q';
            break;
        case 13:
            ch='K';
            break;
        default:
        printf("输入错误"); 
    }
    printf("对应的扑克牌是%c\n",ch);
    }
}

。。。!!!)))000
2012-03-18 21:55
木头lbj
Rank: 7Rank: 7Rank: 7
来 自:黄山
等 级:黑侠
威 望:1
帖 子:269
专家分:527
注 册:2010-11-6
收藏
得分:0 
附带说下,switch语句的末尾应该加上default语句。

。。。!!!)))000
2012-03-18 21:56
木头lbj
Rank: 7Rank: 7Rank: 7
来 自:黄山
等 级:黑侠
威 望:1
帖 子:269
专家分:527
注 册:2010-11-6
收藏
得分:0 
   就看看程序   再发前面居然已经有了两个回复了   囧。。。

。。。!!!)))000
2012-03-18 21:57
快速回复:求助,输出的一直是问号
数据加载中...
 
   



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

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