首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-13 
ASCII码和字符互换的问题各位大大,小弟是初学者,现在遇到个麻烦,请帮我解决下。有一个题目是:接收一个四位

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

热点排行