比亚迪速锐手机遥控:C语言问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/15 05:35:38
#include <stdio.h>
main( )
{ char ch1,ch2; int n1,n2;
ch1=getchar(); ch2=getchar();
n1=ch1-‘0’; n2=n1*10+(ch2-‘0’);
printf(“%d\n”,n2);
}
程序运行时输入:12<回车>,执行后输出结果是【10】
/*ch1-‘0’这个什么意思*/

ch1-'0',这是将字符char型的数值转换为int型的方法
因为'1'-'0'= 1 //注意'1'和'0'都是char字符,最后结果是整数1。
依此类推,'2'-'0' = 2....'9'-'0'=9
这是利用字符'0'---'9'在Ascii码表中是按顺序排列的原因。
类似的还有 'b'-'a' = 1,'B'-'A' = 1

ch1 的 ascii 吗 减去 0 对应的 ascii 吗的数值

你的程序没错,我已经在自己的电脑里运行过了,输入12,输出就是12。可能是你输入有问题,你的程序完全没有问题。