关于C的问题
发布网友
发布时间:2022-04-27 14:17
我来回答
共3个回答
热心网友
时间:2022-04-27 15:46
#include<stdio.h>
main()
{
char c; //定义一个字符c
while((c=getchar())!='\n') //输入一个字符并赋值给c,然后判断字符c的值是否与\n相等
{
switch(c-'2') //第一次输入的是2,2-2=0
{
case 0:// 满足条件往下执行
case 1: putchar(c+4); //在没碰到中断符(break、其它)之前依然执行,输出2+4=6的值
case 2: putchar(c+4);break;//输出2+4=6的值,遇到中断符结束,返回循环判断条件,满足再执行
case 3: putchar(c+3);
default : putchar(c+2);break;
}
}
putchar('\n');
}
我只是把第一次循环的思路讲了一下,也就是输入第一个4时所输出的值 ,不知道看懂了没!
热心网友
时间:2022-04-27 17:04
getchar() 首先读取2并赋值给c ,然后进入switch,因为c-2=0,所以从case 0进入,一直运行到break,跳出switch,所以运行case 1: putchar(c+4);case 2: putchar(c+4);这两条语句。输出66。
然后又读取c=4,c-2=2,所以case 2进入,break跳出,输出8,再进入while循环 。
读取7,c-2=5,case 没有5,运行default:putchar(c+2);break; 所以输出9.
读取3,c-2=1,从case 1进入,运行case 1: putchar(c+4);case 2: putchar(c+4);到break跳出,输出77。
读取完毕输出\n,运行完毕,所以总的是668977\n。
热心网友
时间:2022-04-27 18:39
更大更大更大阿哥