|
10鱼币
本帖最后由 小黑兹 于 2020-4-25 02:51 编辑
答案:
- #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;
- }
复制代码
其中contiune跳过了什么
尝试将其去掉输出(去掉了大写中的):
请输入明文:abcxyz,ABCXYZ
defabc,DAEBFCAXBYCZ
问题:
为什么while循环中的非if内的最后一个putchar()函数没有被跳过,或者contiune跳过了什么。
为什么contiune去掉之后又输出原来的输入,这里的输入不是经过了计算吗,为什么第二次输出没有改变
为什么while循环中的非if内的最后一个putchar()函数没有被跳过,或者contiune跳过了什么。
没有满足两个if的时候,也就是输入了非英文字母的时候就会执行非if的putchar
为什么contiune去掉之后又输出原来的输入,这里的输入不是经过了计算吗,为什么第二次输出没有改变
后面的输出就是循环中的最后那个putchar的输出
|
最佳答案
查看完整内容
为什么while循环中的非if内的最后一个putchar()函数没有被跳过,或者contiune跳过了什么。
没有满足两个if的时候,也就是输入了非英文字母的时候就会执行非if的putchar
为什么contiune去掉之后又输出原来的输入,这里的输入不是经过了计算吗,为什么第二次输出没有改变
后面的输出就是循环中的最后那个putchar的输出
|