#include
#include
int main()
{
int c=0;
while((c=getchar())!='\n')
switch(c-'2')
{
case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default:putchar(c+2);break;
}
printf("\n");
system("pause");
return 0;
}
getchar输入2473只读2
那么为什么输入2473得到668977
输入2得到66
且最后printf的时候c=10,那为啥这个时候printf("\n")就是668977
\n不是换行么
第二次执行到switch(c-'2')的时候c=52 不是54 也不是50 是为什么捏
getchar读入一个字符,输入2473,第一个2就是数字字符'2'
输入'2'时,switch(0),执行两次putchar(c+4),因为c是‘2’,所以加4就是'6',因此输出66
输入'4'时,switch(2),执行一次putchar(c+4),输出8
输入'7'时,switch(5),执行default,输出9
输入'3'时,switch(1),执行两次putchar(c+4),输出77
===========
且最后printf的时候c=10 ,因为'\n'就是10,所以switch是不执行的,直接printf输出换行符结束了