C语言等级考试例题高手帮看下什么意思

[复制链接]
查看11 | 回复2 | 2010-5-19 11:56:04 | 显示全部楼层 |阅读模式
输入一个三位数,依次输出该数的符号和百位,十位,个位数字:
main()
char c1,c2,c3,c4;
int x;
scanf("%d",&x);
c4=(x>=0?'+':'-');
这步什么意思?
x=abs(x);
c3=x%10+48;
这步的意思是什么,为什么要加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);
我是个初学者,麻烦解释的详细点。

回复

使用道具 举报

千问 | 2010-5-19 11:56:04 | 显示全部楼层
楼上已经说得很清楚了
回复

使用道具 举报

千问 | 2010-5-19 11:56:04 | 显示全部楼层
c4=(x>=0?'+':'-'); 如果x>=0,c4='+';如果是负数c4='-';c3=x%10+48; 这个写得不好 c3=x%10+'0';之后的一样48是字符'0'的ASCII码值,你看到的字符必须是ASCII码才能%c显示。下面是等式,帮助你理解ASCII5+'0'=5+48=53=0x35='5' 十进制 十六进
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行