c语言求解!若输入2473,答案为什么是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);break;
default :putchar(c+2);
}
}printf("\n");
} 展开
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);break;
default :putchar(c+2);
}
}printf("\n");
} 展开
2个回答
展开全部
2的时候就是66 4的时候就是8 7的时候就是9 3的时候就是77
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c-'2'是指将字符c的ascii码与字符'2'的ascii作差。
输入为2,差的结果为0,执行case 0,没有break,继续执行case 1,输出 c+4,因为c为2,所以输出6;没有break,继续执行case 2,输出 c+4,还是6;遇到break,退出swith语句。
输入为4,差的结果为2,执行case 2,输出c+4,为8,遇到break,退出swith语句。
输入为7,差的结果为5,执行default,输出为c+2,即9,后面没有语句了,即使没有break,也退出switch语句。
输入为3, 差的结果为1,执行case 1,输出 c+4,即7,没有break,继续执行case 2,输出c+4,即7,遇到break,退出switch,输入结束,退出while循环。
故此输出为:668977
输入为2,差的结果为0,执行case 0,没有break,继续执行case 1,输出 c+4,因为c为2,所以输出6;没有break,继续执行case 2,输出 c+4,还是6;遇到break,退出swith语句。
输入为4,差的结果为2,执行case 2,输出c+4,为8,遇到break,退出swith语句。
输入为7,差的结果为5,执行default,输出为c+2,即9,后面没有语句了,即使没有break,也退出switch语句。
输入为3, 差的结果为1,执行case 1,输出 c+4,即7,没有break,继续执行case 2,输出c+4,即7,遇到break,退出switch,输入结束,退出while循环。
故此输出为:668977
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询