#include "stdio.h"
main()
{int c;
while((c=getchar())!='\n')
{switch(c-50)
{ 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");
}
switch(c-50)
改为switch (c-'2')
printf 上去掉一个{
c语言,为什么输入2473后结果是668977,程序是怎么运行的?
答案:6 悬赏:50
解决时间 2021-03-01 04:21
- 提问者网友:残阳碧曼
- 2021-02-28 08:38
最佳答案
- 二级知识专家网友:嗷呜我不好爱
- 2021-02-28 09:22
输入2473
循环接收:
1. 接收2,即c=‘2’,减去'2',结果为0,就会走case 0,1,2,就会输出两个c+4,即输出两个6
2.接收4,即c=‘4’,减去'2',结果为2,就会走case 2,就会输出一个c+4,即输出8
3.接收7,即c=‘7’,减去'2',结果为5,就会走default,就会输出一个c+2,即输出9
4.接收3,即c=‘3’,减去'2',结果为1,就会走case 1,2,就会输出两个c+4,即输出两个7
所以结果就是668977
循环接收:
1. 接收2,即c=‘2’,减去'2',结果为0,就会走case 0,1,2,就会输出两个c+4,即输出两个6
2.接收4,即c=‘4’,减去'2',结果为2,就会走case 2,就会输出一个c+4,即输出8
3.接收7,即c=‘7’,减去'2',结果为5,就会走default,就会输出一个c+2,即输出9
4.接收3,即c=‘3’,减去'2',结果为1,就会走case 1,2,就会输出两个c+4,即输出两个7
所以结果就是668977
全部回答
- 1楼网友:留下所有热言
- 2021-02-28 13:15
关于循环我觉得 慕容冰绡 说的不错,
- 2楼网友:滚出爷的世界
- 2021-02-28 13:02
童鞋,你那个2473系统把他理解成字符了 然后2的ASCII码是50 然后50-50等于0 执行第一个
由于没有break所以执行前俩 还是ascii吗 都是6 后边你一次类推吧
建议都加上break
- 3楼网友:一场云烟
- 2021-02-28 12:37
用scanf()函数输入double类型的变量时,转换说明中的转换字符(占位符)只能用lf,即%lf,写成%f无法正确输入double型数据
或者把变量声明的类型改为float也可
- 4楼网友:茫然不知崩溃
- 2021-02-28 11:35
你定义的是整型,输入是字符串型,输出也是字符串型。
有变化不正常么?
- 5楼网友:颜值超标
- 2021-02-28 10:29
你输入2473,当为2时,进入switch语句(2的ASKII码是50)则为case 0:没处理
接着是case1输出c+4也就是6。但是还是没退出,接着case3还是c+4输出6。然后是你的4(4的ASKII码是52),则为case2输出8,同理7输出9,那么3输出77。故为668977
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯