鱼C论坛

 找回密码
 立即注册
查看: 2042|回复: 5

[已解决]带你学c带你飞课程里的问题

[复制链接]
发表于 2019-2-9 17:07:32 | 显示全部楼层 |阅读模式

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

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

x
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int ch;
  5.        
  6.         printf("请输入明文:");
  7.        
  8.         ch = getchar();
  9.        
  10.         while((ch = getchar()) != '\n')[code]#include <stdio.h>

  11. int main()
  12. {
  13.         int ch;

  14.         printf("请输入明文:");

  15.         while ((ch = getchar()) != '\n')
  16.         {
  17.                 if (ch >= 'a' && ch <= 'z')
  18.                 {
  19.                         putchar('a' + (ch - 'a' + 3) % 26);
  20.                         continue;
  21.                 }

  22.                 if (ch >= 'A' && ch <= 'Z')
  23.                 {
  24.                         putchar('A' + (ch - 'A' + 3) % 26);
  25.                         continue;
  26.                 }

  27.                 putchar(ch);
  28.         }

  29.         putchar('\n');

  30.         return 0;
  31. }
复制代码

        {
                if(ch >='a'&&ch <= 'z')
                {
                        putchar('a' + (ch - 'a' + 3) % 26);
                        continue;
                }
               
                if(ch >='A'&&ch <= 'Z')
                {
                        putchar('A' + (ch - 'A' + 3) % 26);
                        continue;
                }
               
                putchar(ch);
         }
       
        putchar('\n');
       
        return 0;
} [/code]

S1E15中的问题。请问为什么第一个代码我输入abc后出现的是ef,少了一个d呢?
最佳答案
2019-2-11 17:33:20
cc84525145 发表于 2019-2-11 17:20
ch = getchar();  我的理解是从键盘输入一个字符型数据,把值赋给变量ch啊...那请问ch = getchar()该怎 ...

输入 'i love fishc'
ch = getchar();
ch = 'i';

后面剩下 ' love fishc' 直到 '\n' 结束,请问你有问题没有?,人家正常代码前面没有  ch = getchar();  ,你的代码前面非得加个  ch = getchar();  何意?
while ((ch = getchar()) != '\n')
        {
                if (ch >= 'a' && ch <= 'z')
                {
                        putchar('a' + (ch - 'a' + 3) % 26);
                        continue;
                }

                if (ch >= 'A' && ch <= 'Z')
                {
                        putchar('A' + (ch - 'A' + 3) % 26);
                        continue;
                }

                putchar(ch);
        }

        putchar('\n');

        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-2-9 17:08:22 | 显示全部楼层
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int ch;
  5.        
  6.         printf("请输入明文:");
  7.        
  8.         ch = getchar();
  9.        
  10.         while((ch = getchar()) != '\n')
  11.         {
  12.                 if(ch >='a'&&ch <= 'z')
  13.                 {
  14.                         putchar('a' + (ch - 'a' + 3) % 26);
  15.                         continue;
  16.                 }
  17.                
  18.                 if(ch >='A'&&ch <= 'Z')
  19.                 {
  20.                         putchar('A' + (ch - 'A' + 3) % 26);
  21.                         continue;
  22.                 }
  23.                
  24.                 putchar(ch);
  25.          }
  26.        
  27.         putchar('\n');
  28.        
  29.         return 0;
  30. }
复制代码
这是有问题的代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-9 17:08:53 | 显示全部楼层
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int ch;

  5.         printf("请输入明文:");

  6.         while ((ch = getchar()) != '\n')
  7.         {
  8.                 if (ch >= 'a' && ch <= 'z')
  9.                 {
  10.                         putchar('a' + (ch - 'a' + 3) % 26);
  11.                         continue;
  12.                 }

  13.                 if (ch >= 'A' && ch <= 'Z')
  14.                 {
  15.                         putchar('A' + (ch - 'A' + 3) % 26);
  16.                         continue;
  17.                 }

  18.                 putchar(ch);
  19.         }

  20.         putchar('\n');

  21.         return 0;
  22. }
复制代码
这个是没问题的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-9 17:13:59 | 显示全部楼层
        
        printf("请输入明文:");
        
        ch = getchar(); //无缘无故,你这里就取掉一个字符是什么意思?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-11 17:20:36 | 显示全部楼层
ba21 发表于 2019-2-9 17:13
printf("请输入明文:");
        
        ch = getchar(); //无缘无故,你这里就取 ...

ch = getchar();  我的理解是从键盘输入一个字符型数据,把值赋给变量ch啊...那请问ch = getchar()该怎样正确理解呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-11 17:33:20 | 显示全部楼层    本楼为最佳答案   
cc84525145 发表于 2019-2-11 17:20
ch = getchar();  我的理解是从键盘输入一个字符型数据,把值赋给变量ch啊...那请问ch = getchar()该怎 ...

输入 'i love fishc'
ch = getchar();
ch = 'i';

后面剩下 ' love fishc' 直到 '\n' 结束,请问你有问题没有?,人家正常代码前面没有  ch = getchar();  ,你的代码前面非得加个  ch = getchar();  何意?
while ((ch = getchar()) != '\n')
        {
                if (ch >= 'a' && ch <= 'z')
                {
                        putchar('a' + (ch - 'a' + 3) % 26);
                        continue;
                }

                if (ch >= 'A' && ch <= 'Z')
                {
                        putchar('A' + (ch - 'A' + 3) % 26);
                        continue;
                }

                putchar(ch);
        }

        putchar('\n');

        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-7 11:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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