一道C的题,帮忙分析一下,答案是668977

#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:put... #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("\n");
}
是呀,输入为2473,输出为668977,请帮忙解释具体点,比如为什么当输入为2时,输出为66?输入为4时,输出为8,输入为7时,输出为9,输入为3时输出为77,本人为初学者,还请多赐教,不胜感激!
展开
 我来答
weizeng_2000
2009-07-23 · 超过31用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:67.1万
展开全部
这个题是考switch的,在case中如果有一个匹配上就会一直执行直到遇到break或者switch结束,本题是要你输入整数,但是程序却以字符的形式接收,当输入为2时匹配0但直到case 2的break时才跳出switch
两个6是因为,在case1和2的时候都是c+4=6;并且经过putchar发送到屏幕上了
凭子蕙0H8
2009-07-23 · TA获得超过484个赞
知道小有建树答主
回答量:623
采纳率:0%
帮助的人:482万
展开全部
C的数值要具体输入的 你题目是不是没写完整?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圀囦囯
2009-07-23 · 超过16用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:0
展开全部
看'2'
switch(c-'2') //'2'-'2'=0
{ case 0:
case 1:putchar(c+4);//输出'6'
case 2:putchar(c+4);break; //输出'6'跳出去
case 3:putchar(c+3);
default :putchar(c+2);break;
}

看'4'
switch(c-'2') //'4'-'2'=2
{ case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break; //输出'8'跳出去
case 3:putchar(c+3);
default :putchar(c+2);break;
}

看'7'
switch(c-'2') //'7'-'2'=5
{ case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default :putchar(c+2);break;//输出'9'跳出去
}

看'3'
switch(c-'2') //'3'-'2'=1
{ case 0:
case 1:putchar(c+4);//输出'7'
case 2:putchar(c+4);break;//输出'7'跳出去
case 3:putchar(c+3);
default :putchar(c+2);break;
}

switch ..case..一定要有break;才会跳出,没有break;就一直往下运行
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式