鱼C论坛

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

萌新求助

[复制链接]
发表于 2021-12-6 11:09:01 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
int main()
{
    char ch;
    printf("请输入一个字符:");
    scanf("%c",&ch);
    if(ch>='A'&&ch<='Z')
    {
        ch=ch+32;
        printf("%c\n",ch);
    }
    if(ch>='a'&&ch<='z')
    {
        ch=ch-32;
        printf("%c\n",ch);
    }
    return 0;
}
萌新一枚
为什么这个输入:A之后
会输出:a
             A
第二个if不是不在范围内吗不应该只输出a吗
2021-12-06.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-6 11:26:16 | 显示全部楼层

回帖奖励 +2 鱼币

你输入A后,A的值是65满足第一个表达式,执行第一个if后为65+32=97等于a,这题是大小写转换。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-6 11:27:24 | 显示全部楼层
梦雨 发表于 2021-12-6 11:26
你输入A后,A的值是65满足第一个表达式,执行第一个if后为65+32=97等于a,这题是大小写转换。


你把第二个if改成else就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-6 11:27:47 | 显示全部楼层
这个是不是在执行完第一个if语句后,ch的值变成了a,又顺序执行了第二个?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-12-6 13:12:33 | 显示全部楼层
梦雨 发表于 2021-12-6 11:27
你把第二个if改成else就行了

为什么改成else就可以了,而我这些写,输入A就会输出a A。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-6 14:12:31 | 显示全部楼层
因为你这个是先第一个if判断完后,到第二个if并再次判断
而if else是第一个if如果条件为真,就不进行else的判断,要if的条件为假,才会进行else判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-5 17:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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