问题标题:
各位帮我看看解释下这段程序几个步骤的意思!问题是输入一个非零的整数,依次输出该数的正(负)号和百位十位个位字..#include#includevoidmain(){charc1,c2,c3,c4;intx;scanf("%d",&x);c4=(x>0?'+':'-');x=a
问题描述:
各位帮我看看解释下这段程序几个步骤的意思!
问题是输入一个非零的整数,依次输出该数的正(负)号和百位十位个位字..
#include
#include
voidmain()
{
charc1,c2,c3,c4;
intx;
scanf("%d",&x);
c4=(x>0?'+':'-');
x=abs(x);
c3=x%10+48;
x=x/10;
c2=x%10+48;
c1=x/10+48;
printf("%cn%cn%cn%cn",c4,c1,c2,c3);
}
这个程序里我有几个不明白的地方,
(1)c1c2c3那段里面为啥要加48
(2)后面输出的为啥是%c?
我知道为啥输出写的是%c了请个位告诉我+48的那个含义是什么?
程小武回答:
48是字符零在ASCII码中对应的整数值,因为X是整型,而C2,C1是字符类型,整型转换成字符型,要对应其在ASCII码中的整数值,而字符零的整数值是48,所以要加上,否则转换是错误的,其实也可以这样转换,C2=(char)(X%10);这些都是基础知识,楼主要注意了
点击显示
其它推荐