各位帮我看看解释下这段程序几个步骤的意思!问题是输入一个非零的整数,依次输出该数的正(负)号和百位 十位 个位字..#include #include void main(){char c1,c2,c3,c4;int x;scanf("%d",&x);c4=(x>0?'+':'-');x=a

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 13:29:16

各位帮我看看解释下这段程序几个步骤的意思!问题是输入一个非零的整数,依次输出该数的正(负)号和百位 十位 个位字..#include #include void main(){char c1,c2,c3,c4;int x;scanf("%d",&x);c4=(x>0?'+':'-');x=a
各位帮我看看解释下这段程序几个步骤的意思!
问题是输入一个非零的整数,依次输出该数的正(负)号和百位 十位 个位字..
#include
#include
void main()
{
char c1,c2,c3,c4;
int x;
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("%c\n%c\n%c\n%c\n",c4,c1,c2,c3);
}
这个程序里我有几个不明白的地方,
(1)c1 c2 c3 那段里面为啥要加48
(2) 后面输出的为啥是%c?
我知道为啥输出写的是%c了 请个位告诉我+48的那个含义是什么?

各位帮我看看解释下这段程序几个步骤的意思!问题是输入一个非零的整数,依次输出该数的正(负)号和百位 十位 个位字..#include #include void main(){char c1,c2,c3,c4;int x;scanf("%d",&x);c4=(x>0?'+':'-');x=a
48 是字符 零 在ASCII码中对应的整数值,因为X是整型,而C2,C1是字符类型,整型转换成字符型,要对应其在ASCII码中的整数值,而 字符零的整数值是48,所以要加上,否则转换是错误的,其实也可以这样转换,C2 = (char) ( X %10 ); 这些都是基础知识,楼主要注意了