#include <stdio.h>
int main()
{
char c;
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");
}
为啥输入2473后是668977
输入2473时,执行顺序:
当 c = '2'时,switch(c-'2') = ('2'-'2')=0, case 0: case 1:putchar(c+4)=('2'+4)='6',case 2:putchar(c+4)='6',break;
此时输出:66
当 c = '4'时,switch(c-'2') = ('4'-'2')=2, case 2:putchar(c+4)=('4'+4)='8',break;
此时输出:8
当 c = '7'时,switch(c-'2') = ('7'-'2')=5, default:putchar(c+2)=('7'+2)='9',break;
此时输出:9
当 c = '3'时,switch(c-'2') = ('3'-'2')=1, case 1:putchar(c+4)=('3'+4)='7',case 2:putchar(c+4)=('3'+4)='7',break;
此时输出:77
最终显示:'668977'