C语言 程序看不懂 帮帮我
#include<stdio.h>intmain( ){
charc ;
c = getchar( );
while ( c != '\n' ){
switch ( c - '2' ){
case 0 :
case 1: putchar( c + 4 ) ;
case 2: putchar( c + 4 ) ;
break;
case 3: putchar( c + 3 ) ;
case 4: putchar( c + 2 ) ;
break;
}
c = getchar( );
}
printf( "\n" ) ;
return0 ;
}
输入7654输出 8878
不懂唉 为啥一下发了两个帖子{:10_243:} 输入7
c=7,c-'2'为5,情况不存在,不输出
c=6,c-'2'为4,执行情况4,然后跳出但c的值没有被改变,所以c还是6,则输出c+2即8
输入5,4,的时候同理,都没有改变c的值,并且没有遇见break也不会跳出,会按情况顺序输出,只到遇见break 你是程序看不懂,我全部给注释在程序中,至于程序是否正确,你自己去确认
#include<stdio.h>
intmain( )
{
charc ; // 定义一个字符变量 c
c = getchar( ); // 由键盘输入给变量 c 赋值
while ( c != '\n' ) // 没有遇到回车键就一直循环
{
switch ( c - '2' ) // 以 c - '2' 的值为条件,选择下列各种情况进行运算
{
case 0 : // 预计没有此种情况发生,若有,往下执行
case 1: putchar( c + 4 ) ; // 输出 c + 4 后,继续执行下一情况语句
case 2: putchar( c + 4 ) ;break; // 若有上面两种情况下发生,以及直接发生本情况,运行完成此行语句后,中断退出开关选择体
case 3: putchar( c + 3 ) ; // 输出 c + 3 后,继续执行下一情况语句
case 4: putchar( c + 2 ) ;break; // 若有上一种情况下发生,以及直接发生本情况,运行完成此行语句后,中断退出开关选择体
}
c = getchar( ); // 从键盘重新输入一个字符
}
printf( "\n" ) ; // 换行
return0 ;
}
页:
[1]