大佬帮忙看看
#include <stdio.h>//#include <math.h>
//#include <stalib.h>
void main()
{
char ch1,ch2;
int n1,n2;
ch1=getchar();
ch2=getchar();
n1=ch1-'0';
n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
输入12
为什么输出也是12
求运算逻辑 n1=‘1’-'0'=1
n2=n1*10+('2'-'0')=10+2=12 是你键入的是字符 '1' 和 '2' 而输出的是整数 12 具体逻辑如下:
n1 = ch1 - '0' = '1' - '0' = 1
n2 = n1 * 10 + ch2 - '0' = 1 * 10 + '2' - '0' = 10 + 2 = 12 本帖最后由 jackz007 于 2022-11-17 20:59 编辑
从表面上看,你键入了 12,于是,又输出了 12,好像一切都是那么自然合理,而实际上却不然,你键入的是字符 '1' 和 '2' ,而输出的却是整数 12,具体逻辑如下:
n1 = ch1 - '0' = '1' - '0' = 1
n2 = n1 * 10 + ch2 - '0' = 1 * 10 + '2' - '0' = 10 + 2 = 12
页:
[1]