鱼C论坛

 找回密码
 立即注册
查看: 1454|回复: 3

[已解决]C语言 程序看不懂 帮帮我

[复制链接]
发表于 2020-11-10 12:12:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int  main( ){
  char  c ;
  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" ) ;
  return  0 ;
}

输入7654  输出 8878
不懂唉
最佳答案
2020-11-20 00:01:35
你是程序看不懂,我全部给注释在程序中,至于程序是否正确,你自己去确认
#include<stdio.h>
int  main( )
{
      char  c ;                                                 // 定义一个字符变量 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" ) ;                                        // 换行
      return  0 ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-10 12:14:17 | 显示全部楼层
为啥一下发了两个帖子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-18 07:29:01 From FishC Mobile | 显示全部楼层
输入7
c=7,c-'2'为5,情况不存在,不输出
c=6,c-'2'为4,执行情况4,然后跳出但c的值没有被改变,所以c还是6,则输出c+2即8
输入5,4,的时候同理,都没有改变c的值,并且没有遇见break也不会跳出,会按情况顺序输出,只到遇见break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-20 00:01:35 | 显示全部楼层    本楼为最佳答案   
你是程序看不懂,我全部给注释在程序中,至于程序是否正确,你自己去确认
#include<stdio.h>
int  main( )
{
      char  c ;                                                 // 定义一个字符变量 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" ) ;                                        // 换行
      return  0 ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 20:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表