C语言<进制转换>的程序题【初学者问题】

[复制链接]
查看11 | 回复2 | 2013-8-18 21:12:34 | 显示全部楼层 |阅读模式
你可以测试这组数据:5A 16正确答案是90,而你的程序输出是70。原因在if(in>='A')
//下面这句话你仔细看,是不是应该改成:in = in - 'A' + 10;
//你的写法等价于:in = in - ('A' + 10),明显错了。
in-='A'+10; else
in-='0';另外,为了严谨,你可能需要考虑到16进制数用小写字母表示的情况以及题目中的输入数据有可能为负数等情况。
这样写更保险if(in>='A' && in long strtol(const char* restrict, char**, int);咳咳。。。...
回复

使用道具 举报

千问 | 2013-8-18 21:12:34 | 显示全部楼层
可能是测试平台的问题把...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行