鱼C论坛

 找回密码
 立即注册
查看: 1937|回复: 6

[已解决]大小写转换,这么写代码,大写转小写没问题,但是小写转大写是怎么回事?

[复制链接]
发表于 2021-3-10 22:56:35 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>
#include <stdlib.h>
int main()
{
        char i;
   
    printf("请输入字符:\n");
    scanf("%c",&i);
    if (i >= 65)
    {
                        i = i + 32;
            printf("您的大写字母转小写字母:%c\n",i);
    }
       
    if (i >= 97)
    {
                        i = i - 32;
                        printf("您的小写字母转大写字母:%c\n",i);
    }
   
        system("pause");
        return 0;
}
最佳答案
2021-3-11 02:48:08
逻辑错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-10 23:05:07 | 显示全部楼层
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
        char i                                                                        ;
        printf("请输入字符:\n")                                                      ;
        scanf("%c" , & i)                                                             ;
        if(i >= 'A' && i <= 'Z') printf("您的大写字母转小写字母:%c\n" , i + 32)      ;
        else if(i >= 'a' && i <= 'z') printf("您的小写字母转大写字母:%c\n" , i - 32) ;
        else printf("您的字符不是字母:%c\n" , i)                                     ;
        system("pause")                                                               ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-10 23:39:06 | 显示全部楼层
大写转小写没问题吗   你这样输入大写字母 难道不是两个if语句都执行了吗  if里面的判断条件有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 02:48:08 | 显示全部楼层    本楼为最佳答案   
逻辑错了

评分

参与人数 1荣誉 +5 鱼币 +1 贡献 +3 收起 理由
aa765685928 + 5 + 1 + 3 谢谢,终于找出来了!!!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-11 07:55:23 | 显示全部楼层
条件写得不严谨,如果i满足第二个条件,那么i已经满足第一个条件了

评分

参与人数 1荣誉 +5 鱼币 +2 贡献 +3 收起 理由
aa765685928 + 5 + 2 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-13 23:41:23 | 显示全部楼层
谢谢大家的回复,我终于找出错误了,第一点是if和if同时用,都执行的;第二点是>=65的时候有可能>=97 把i>=97调到上面就好了,谢谢大家!!!!


#include <stdio.h>
#include <stdlib.h>
int main()
{
    char i;
   
    printf("请输入字符:\n");
    scanf("%c",&i);
   
        if (i >= 97)
    {
            
             printf("您的小写字母转大写字母:%c\n",i = i - 32);
    }
   
    else if (i >= 65)
    {
                       
            printf("您的大写字母转小写字母:%c\n",i = i + 32);
            
    }
   
   
            
    else
    {
                printf("您输入的不是字母\n");
    }
        
        
     
   
        system("pause");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 00:08:13 | 显示全部楼层
aa765685928 发表于 2021-3-13 23:41
谢谢大家的回复,我终于找出错误了,第一点是if和if同时用,都执行的;第二点是>=65的时候有可能>=97 把i>= ...


建议判断条件严格一点:
大写 i >='A' && i<='Z'
小写 i>='a' && i <= 'z'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 02:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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