fffffffffore 2022-12-24 23:59 采纳率: 83.3%
浏览 17
已结题

C语言简单的循环问题疑惑

【C语言简单循环结构问题】
加密字母字符,使字母往后推四个字母。大小写分开。如:Z变为D; E变为I;c变为g

遇到的现象和发生背景,请写出第一个错误信息

空格被读入w~z的判断语句中

#include<stdio.h>
int main()
{
    char c;
    c=getchar();
    while(c!='\0')
    {
        if((c>='a'&&c<='v')||(c>='A'&&c<='Z'))
        {
        putchar(c+4);
        c=getchar();
        }
        else if((c>='w'&&c<='z')||(c>='W'&&c<='Z'))
        {
        putchar(c-22);
        c=getchar();
        }
    }

}


运行结果及详细报错内容

字母加密没有问题,但是后面的非字母一直停不下来

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{ if((c>='w'&&c<='z')||(c>='W'&&c<='Z'))
c=c-22;
else c+=4;
}//我尝试在判断W~Z之前判断是否为字母。

【我的问题】
1.请问第一个写法,我在调试的时候发现空格会被读入WZ的判断中,想请问一下,空格为什么会被读入WZ中间?谢谢您的解答,我会积极采纳的

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-12-25 00:06
    关注

    c=getchar();放到while循环结束前,不要放在两个if里。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月10日
  • 修改了问题 12月25日
  • 创建了问题 12月24日

悬赏问题

  • ¥15 平板录音机录音问题解决
  • ¥15 请问维特智能的安卓APP在手机上存储传感器数据后,如何找到它的存储路径?
  • ¥15 (SQL语句|查询结果翻了4倍)
  • ¥15 Odoo17操作下面代码的模块时出现没有'读取'来访问
  • ¥50 .net core 并发调用接口问题
  • ¥15 网上各种方法试过了,pip还是无法使用
  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启