读书人

ASCII码和字符互换的有关问题

发布时间: 2012-02-13 17:20:26 作者: rapoo

ASCII码和字符互换的问题
各位大大,小弟是初学者,现在遇到个麻烦,请帮我解决下。
有一个题目是:接收一个四位数,编写一个程序,将该数的每一个数字相加并显示结果。 我现在写了一下:
#include <stdio.h>
void main()
{
char a,b,c,d,e;
printf( "请输入一个四位数: ");
a=getchar();
b=getchar();
c=getchar();
d=getchar();
e=a+b+c+d;
printf( "各位数相加的结果是:%d ",e);
}

如果输入1234,这段代码执行的结果是202.而不是10。请帮我一下。

[解决办法]
#include <stdio.h>
void main()
{
char a,b,c,d,e;
printf( "请输入一个四位数: ");
a=getchar()- '0 ';
b=getchar()- '0 ';
c=getchar()- '0 ';
d=getchar()- '0 ';
e=a+b+c+d;
printf( "各位数相加的结果是:%d ",e);
}
[解决办法]
getchar() 得到的是 字符,
不是数值。

把字符转换为数值,
只要把这个 数字字符减去 '0 ' 字符即可,
'1 '- '0 ' = 1

读书人网 >C++

热点推荐