字典翻译 问答 其它 各位帮我看看解释下这段程序几个步骤的意思!问题是输入一个非零的整数,依次输出该数的正(负)号和百位十位个位字..#include#includevoidmain(){charc1,c2,c3,c4;intx;scanf("%d",&x);c4=(x>0?'+':'-');x=a
问题标题:
各位帮我看看解释下这段程序几个步骤的意思!问题是输入一个非零的整数,依次输出该数的正(负)号和百位十位个位字..#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);这些都是基础知识,楼主要注意了
点击显示
其它推荐
热门其它推荐
  • 其它