C语言#include <stdio.h>

#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");

}详细解析

#include <stdio.h>
main()入口
{int c;定义一个int变量c,但是忘记了初始化
while((c=getchar())!='\n')循环的从控制台读输入字符,如果输入回车则退出
{switch (c-'2')判断输入的是什么
{case 0:输入0,c-'2'=0推导出c=0+'2'也就是输入的是2此时什么也不干,继续运行
case 1:putchar(c+4);当输入的是3那么他就在控制台输出3+4也就是7,还继续运行
case 2:putchar(c+4);break;当输入的是4那么他就在控制台输出4+4也就是8,不继续运行,跳出

case 3:putchar(c+3);当输入的是5那么他就在控制台输出5+3也就是8,还继续运行

default :putchar(c+2);break;当输入是其他字符那么他就在控制台输出他下2个位置的字符,不继续运行,跳出

}

}printf("\n"); //最后输出了一个回车,但是控制台看不到
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-09
#include <stdio.h>
main()
{int c;
while((c=getchar())!='\n')//判断输入的字符是否是回车,也就是是否是输入结束。如果不是就执行
{switch (c-'2')//将c所指的字符的ascii码减去2所对应的ascii码作为表达式。
{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");

其它的应该都懂吧?

}
第2个回答  2011-03-09
这个很简单,就是让你输入一个整型数 c。然后执行switch选择程序。注意case 0 和case 1 ,case
3都没break,也就是如果满足条件执行到这里,还会执行后面的。就是这样的,还有哪不清楚吗?
第3个回答  2011-03-09
#表示预处理
#include "stdio.h"
#include "math.h"
main()
{
double x,s;
printf("input number:\n");
scanf("%lf",&x);
s=sin(x);
printf("sine of %lf is %lf\n",x,s);
}
预处理命令还有其它几种,这里的include 称为文件包含命令,其意义是把尖括号""或引号<>内指定的文件包含到本程序来,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h。因此也称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。在本例中,使用了三个库函数:输入函数scanf,正弦函数sin,输出函数printf。sin函数是数学函数,其头文件为math.h文件,因此在程序的主函数前用include命令包含了math.h。scanf和printf是标准输入输出函数,其头文件为stdio.h,在主函数前也用include命令包含了stdio.h文件。
第4个回答  2011-03-09
哥们,你的程序是有输入字符的程序,当输入字符后,才能解释该程序内涵
第5个回答  2011-03-09
getchar()是从标准输入(对电脑来说是键盘)中读取字符,并把getchar得到的值赋值给c
然后c判断是否等于“\n”即是否是回车,
如果是回车:则不进入循环直接执行printf("\n");
如果不是回车,则进入循环,接着就是switch的事了
首先运行c-"2",这个意思是因为getchar输入进来的是以字符串的形式进来的,用c所代表的ASCII减去
字符“2”所代表的ASCII码,所得到的就是num=(c所代表的实际数字c-数字2)所得的值
根据算出来的值,来判断执行哪个case,比如num=1,则执行case 1:putchar(c+4);,即输出c的ASCII码+4所代表的数字。
如果算出来的没有对应case(),则执行default :putchar(c+2);break;
呼呼~~写的我累,最后说下你这个代码有问题,每个case语句应该都加break,不然像你写的case1执行完就直接执行case2了,应该不符合你的预期吧。。。
相似回答
大家正在搜