
跪求大神指教指教啊。急急急急急急急急急急急急急急急 5
亲帮我讲讲行吗main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);...
亲帮我讲讲行吗
main()
{int c;
while((c=getchar())!='\n')
{switch(c-'2')
{case 0:
case 1:putchar(c+4);
case3:putchar(c+4);break;
default :putchar(c+2);break;
}
}printf("\n");
}
从第一列开始输入数据:2473<cr>输出结果是多少。亲亲们,我这个不会做,我不懂怎么样将2473化成数据啊。。还是说我的思路错了呢。。。 展开
main()
{int c;
while((c=getchar())!='\n')
{switch(c-'2')
{case 0:
case 1:putchar(c+4);
case3:putchar(c+4);break;
default :putchar(c+2);break;
}
}printf("\n");
}
从第一列开始输入数据:2473<cr>输出结果是多少。亲亲们,我这个不会做,我不懂怎么样将2473化成数据啊。。还是说我的思路错了呢。。。 展开
2个回答
展开全部
输入2时,c = '2'(是字符,不是数字),'2' - ‘2’ = 0,从case 0开始执行,两次输出字符 ‘2’ + 4 = ‘6’,就是连续两个6被输出。
输入4时,c = '4','4' - '2' = 2,没有匹配的case 分支,执行default,输出'4' + 2,即‘6’
输入7时,c = '7','7' - '2' = 5,没有匹配的case 分支,执行default,输出'7' + 2,即’9‘
输入3时,c = '3','3' - '2' = 1,从case 1开始执行,两次输出字符 ‘3’ + 4 = ‘7’,就是连续两个7被输出。
由此得出,该代码对输入2473的输出是:666977
输入4时,c = '4','4' - '2' = 2,没有匹配的case 分支,执行default,输出'4' + 2,即‘6’
输入7时,c = '7','7' - '2' = 5,没有匹配的case 分支,执行default,输出'7' + 2,即’9‘
输入3时,c = '3','3' - '2' = 1,从case 1开始执行,两次输出字符 ‘3’ + 4 = ‘7’,就是连续两个7被输出。
由此得出,该代码对输入2473的输出是:666977
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询