| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 553 人关注过本帖
标题:刚刚看书又发现了问题,我想了一下,不能解决,问问高手。
只看楼主 加入收藏
joan789987
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-7-17
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
刚刚看书又发现了问题,我想了一下,不能解决,问问高手。
程序是输入三位数,依次输出该数的正(负)号和百位、十位、个位数字。
#include "math.h"           //课本用"",不是用<>吗?
main()
{
  char c1,c2,c3,c4;
  int x;
  sacnf("%d",&x);
  c4=(x>=0?‘+’:‘-’);
  x=abs(x);
  c3=x%10+48;        //课本是说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);
}
我只想知道加48是什么意思,为什么是加48?
搜索更多相关主题的帖子: 看书 
2010-07-17 19:23
zisefengye
Rank: 5Rank: 5
等 级:职业侠客
帖 子:167
专家分:386
注 册:2010-6-27
收藏
得分:10 
你输出的是字符,用加48来修正。假如把printf("%c\n%c\n%c\n%c\n",c4,c1,c2,c3)改成printf("%d\n%d\n%d\n%d\n",c4,c1,c2,c3)就不需要加48来修正。因为0-9对应的ASCII是48-57

[ 本帖最后由 zisefengye 于 2010-7-17 19:41 编辑 ]
2010-07-17 19:36
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:0 
这个问题:
#include "math.h"           //课本用"",不是用<>吗?
参考答案如下:
  用尖号呢。  表示在系统设置的路径去找尖号包含的文件。
  用双引号呢。表示在当前存放源文件的目录去找双引号包含的文件,
              如果找不到则去系统设置的路径去找双引号包含的文件。
而这里用"math.h" 这个文件不是用户定义的,用了双引号那么它会先到
             存放原文件的目录去找math.h,当然找不到,那么就去系统设置的
              路径去找。
所以一般用系统自带的头文件 最好用尖括号 这样省点曲折

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-17 20:42
蓉615
Rank: 1
等 级:新手上路
帖 子:10
专家分:1
注 册:2010-8-3
收藏
得分:0 
一楼和二楼的答案加一起就是你想要的答案
2010-08-03 16:12
hai498975832
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2010-7-26
收藏
得分:0 
4楼说的真是精辟
2010-08-04 02:59
hai498975832
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2010-7-26
收藏
得分:0 
有时候教学书上好像会故意弄些错误,比如说我以前买了本人民邮电出版本的二级C语言等级考试的书,我发现了好多错误的地方,书附带光盘呢,不过里面错误太多了,。。。。。。。。。。。。。。。。。。。。。现在的教学书也不怕误人啊,
2010-08-04 03:04
快速回复:刚刚看书又发现了问题,我想了一下,不能解决,问问高手。
数据加载中...
 
   



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

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