博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

生命的自由度与人!

人类社会所让我们深思的东西有很多!和生命有关,和自由有关,和爱有关,当然更和技术有关!
  johnwoolee.cublog.cn

关于作者
姓名:适兕
职业:系统管理员
窥探计算机多年,终未得其门而入,故在门外徘徊,遂郁郁寡欢,郁郁不得志!终年无所成!
from:   inner mongolia
|| << >> ||
我的分类


一个小程序的诠释(switch)
源程序如下:
#include <stdio.h>
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的理解。

发表于: 2008-05-12,修改于: 2008-05-12 18:13,已浏览195次,有评论0条 推荐 投诉


网友评论
 发表评论