m0_74919453 2022-11-10 22:04 采纳率: 100%
浏览 21
已结题

if else语句问题

以下代码运行后出现乱码,if语句中的条件表达式和if执行语句中的逻辑表达式一定要同类型吗?求指导

#include <stdio.h>

int main()
{
        int ch;
        printf("请输入一行英文句子:");
        while ((ch = getchar()) != '\n')
        {
                if (ch >= 'A' && ch <= 'Z')
                {
                        ch = ch + 32;
                }
                else if (ch >= 'a' && ch <= 'z')
                {
                        ch = ch - 32;
                }

                putchar(ch);
        }
        return 0;
}

运行结果:

img


若改为以下代码

#include <stdio.h>

int main()
{
        int ch;

        printf("请输入一行英文句子:");

        while ((ch = getchar()) != '\n')
        {
                if (ch >= 'A' && ch <= 'Z')
                {
                        ch = ch - 'A' + 'a';
                }
                else if (ch >= 'a' && ch <= 'z')
                {
                        ch = ch - 'a' + 'A';
                }
                putchar(ch);
        }

        putchar('\n');
        return 0;
}

#include <stdio.h>

int main()
{
        int ch;

        printf("请输入一行英文句子:");

        while ((ch = getchar()) != '\n')
        {
                if (ch >= 97 && ch <= 122)
                {
                        ch = ch - 32;
                }
                else if (ch >= 65 && ch <= 90)
                {
                        ch = ch + 32;
                }

                putchar(ch);
        }
        return 0;
}

结果都如下:

img

第一个图的代码乱码的原因在哪里?最后的putchar('\n');代表什么

  • 写回答

1条回答 默认 最新

  • 叶落花枯 2022-11-10 22:17
    关注

    +32和-32写反了,'A' 的ASCII码值是65,'a' 的ASCII码值是97

    
    #include <stdio.h>
     
    int main()
    {
            int ch;
            printf("请输入一行英文句子:");
            while ((ch = getchar()) != '\n')
            {
                    if (ch >= 'A' && ch <= 'Z')
                    {
                            ch = ch + 32;
                    }
                    else if (ch >= 'a' && ch <= 'z')
                    {
                            ch = ch - 32;
                    }
     
                    putchar(ch);
            }
            return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 修改了问题 11月10日
  • 修改了问题 11月10日
  • 展开全部

悬赏问题

  • ¥15 问题重发,R语言:代码运行过程中出现如下警告,请求如何解决!
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 苍穹外卖拦截器token为null
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关