源程序如下:
#include
main( )
{ int 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("%f,\n",putchar(c));
}
编译过执行,比如我输入一数字2,则会打印出66,输入A,打印出C。
解析:
第4行,getchar函数等待输入,遇到换行则为结束;
第5行,c-'2',用输入的字符ASCII减去数字2的ASCII即50,得到结果后,顺序往下;
整段case,c-'2'的余数匹配0,1,2,3后执行,否则执行default的结果。
比如我输入2,那么它的结果为0,执行case 0,case 1 输出c+4的结果,case 2输出c+4的结果,break退出循环。
那么输入A,A-'2'的结果是15,和0,1,2,3都不匹配,则执行default,输出c+2的结果。
如果我们输入2、3、4、5的话,分别有如下输出:6677887,其他的都是顺序加2即可。
理解此程序的几点就是:getchar();putchar();函数的理解,
switch语句的理解;
C中的字符串和数字可以直接进行算术运算;
break这个key的理解。
阅读(1758) | 评论(0) | 转发(0) |