cc84525145 发表于 2019-2-9 17:07:32

带你学c带你飞课程里的问题

#include <stdio.h>

int main()
{
        int ch;
       
        printf("请输入明文:");
       
        ch = getchar();
       
        while((ch = getchar()) != '\n')#include <stdio.h>

int main()
{
      int ch;

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

      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;
}
        {
                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;
}

S1E15中的问题。请问为什么第一个代码我输入abc后出现的是ef,少了一个d呢?

cc84525145 发表于 2019-2-9 17:08:22

#include <stdio.h>

int main()
{
        int ch;
       
        printf("请输入明文:");
       
        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;
} 这是有问题的代码

cc84525145 发表于 2019-2-9 17:08:53

#include <stdio.h>

int main()
{
      int ch;

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

      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;
}这个是没问题的

ba21 发表于 2019-2-9 17:13:59

      
      printf("请输入明文:");
      
        ch = getchar(); //无缘无故,你这里就取掉一个字符是什么意思?

cc84525145 发表于 2019-2-11 17:20:36

ba21 发表于 2019-2-9 17:13
printf("请输入明文:");
      
      ch = getchar(); //无缘无故,你这里就取 ...

ch = getchar();我的理解是从键盘输入一个字符型数据,把值赋给变量ch啊...那请问ch = getchar()该怎样正确理解呢

ba21 发表于 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;
}
页: [1]
查看完整版本: 带你学c带你飞课程里的问题