这个C程序输入2473是怎么得到668977这个结果的?要详细过程

#include"stdio.h"voidmain(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1... #include "stdio.h"
void 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("\n");
}
展开
 我来答
shaoqi08110820
2012-08-28 · TA获得超过2508个赞
知道大有可为答主
回答量:1514
采纳率:100%
帮助的人:1723万
展开全部
我来解答
c='2'
c-'2'=0 switch 入口就是case 0: ->case 1->case 2 break; 输出66
c='4'
c-'2'=2 switch入口就是case 2 break; 输出8
c='7'
c-'2'=5 switch 入口就是 deflaut break 输出 9
c='3'
c-'2'=1 switch的入口就是 case 1->case 2 break; 输出 77
结果就是668977
888愚公888
2012-08-29 · TA获得超过728个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:234万
展开全部
其实就是switch case控制结构的击穿。匹配正常第一位后会一直执行直到结束或者遇到break;语句!没事少做这点题。看《C陷阱与缺陷》就行了!以后编程很少会碰到,自己也不能写这种!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周生008
2012-08-28 · TA获得超过1222个赞
知道小有建树答主
回答量:1329
采纳率:0%
帮助的人:642万
展开全部
int用getchar输入,还用putchar输出?
更多追问追答
追问
getchar 是输入,putchar是输出
追答
那个是字符的输入输出函数,你老老实实用scanf和printf吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
明阿哩05
2012-08-28 · TA获得超过268个赞
知道答主
回答量:417
采纳率:0%
帮助的人:262万
展开全部
很简单
追问
是很简单,我知道答案了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式