标题:各位大神,这个程序输入 48,为什么输出时 09 而不是 9 啊
只看楼主
凤鸣八天
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-7-15
结帖率:50%
已结贴  问题点数:20 回复次数:9 
各位大神,这个程序输入 48,为什么输出时 09 而不是 9 啊
#include "stdio.h"
void main()
{
    char C1,C2;
    scanf("%d",&C1);
    C2=C1+9;
    printf("%c%c\n",C1,C2);
}
搜索更多相关主题的帖子: include 
2014-07-24 16:51
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:3 
c1   c2  不是有两个占位符

DO IT YOURSELF !
2014-07-24 19:50
人字托
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2014-7-24
得分:3 
你是输出c1跟c2 c1是0,c2是9,输出当然是09啦。如果输出函数改成printf("%c %c",c1,c2);得到的就是0 9,中间会有一个空格的。
2014-07-24 20:55
i06630224
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2014-6-30
得分:3 
你的c1,c2是char类型
2014-07-28 22:27
少林小和尚
Rank: 2
等 级:论坛游民
帖 子:57
专家分:26
注 册:2013-3-31
得分:3 
#include "stdio.h"
void main()
{
    char C1,C2;
    scanf("%d",&C1);
    C2=C1+9;
    printf("%c\n",C1);
    printf("%c\n",C2);
}


结果是0   9
0 是48  ASII码为0。
2014-07-29 15:14
clwg
Rank: 2
等 级:论坛游民
帖 子:8
专家分:13
注 册:2014-7-15
得分:3 
你输出了两个字符
2014-07-29 16:47
zcxhapper
Rank: 1
等 级:新手上路
帖 子:7
专家分:3
注 册:2014-4-8
得分:3 
因为c1是48,正好是0的ASCII值,所以输出了个0;如果换成printf("%c",c2)就得9了。
2014-07-29 17:31
单机之王
Rank: 2
等 级:论坛游民
帖 子:8
专家分:20
注 册:2014-7-30
得分:3 
%,是占位符号,两个%c代表后面要输出两个char数据,分别对应c1('0'),c2('9')
2014-07-30 20:46
单机之王
Rank: 2
等 级:论坛游民
帖 子:8
专家分:20
注 册:2014-7-30
得分:0 
%,是占位符号,两个%c代表后面要输出两个char数据,分别对应c1('0'),c2('9')
2014-07-30 20:46
yanglin_gdqy
Rank: 2
等 级:论坛游民
威 望:3
帖 子:59
专家分:86
注 册:2013-12-2
得分:3 
当你输入48时,c1 获得的值是'0',对应整型48 ;
 c2 = c1+9,c2获得的值是'9', 对应整型57.
你格式化c1,c2输出%c%c,当然显示09
2014-07-31 01:47



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




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

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