鱼C论坛

 找回密码
 立即注册
查看: 1944|回复: 7

[已解决]S1E11 大写字母转小写字母 小写字母转大写字母实验

[复制链接]
发表于 2019-3-15 21:35:32 | 显示全部楼层 |阅读模式

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

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

x
鄙人code block debug 程序就无响应了 也听苦闷的,不知原因在何处
再其次觉得这个程序并无bug却存在严重的bug代码如下
  1. #include <stdio.h>
  2. int main()
  3. {   int ch;
  4.     printf("请输入一个字符");
  5.     scanf("%d",&ch);
  6.     if(ch>=65&ch<=90)
  7.         {
  8.             ch=ch+32;
  9.         }
  10.     else if(ch>=91&ch<=116)
  11.         {
  12.             ch=ch-32;
  13.         }
  14.     printf("%c",ch);
  15.     return 0;
  16. }
复制代码


各位来自五湖四海的大佬们,请求你们的帮助
最佳答案
2019-3-15 21:47:14
#include <stdio.h>
int main()
{
        char ch; // 开始就声明成char就好了,int还要转来转去

    printf("请输入一个字符");
    scanf("%c",&ch); // 用%c接收

    if(ch>=65 && ch<=90) // 是&& 不是&
        {
            ch=ch+32;
        }


    else if(ch>=91 && ch<=116) // 是&& 不是&
        {
            ch=ch-32;
        }

    printf("%c\n",ch);

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-15 21:47:14 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>
int main()
{
        char ch; // 开始就声明成char就好了,int还要转来转去

    printf("请输入一个字符");
    scanf("%c",&ch); // 用%c接收

    if(ch>=65 && ch<=90) // 是&& 不是&
        {
            ch=ch+32;
        }


    else if(ch>=91 && ch<=116) // 是&& 不是&
        {
            ch=ch-32;
        }

    printf("%c\n",ch);

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

使用道具 举报

发表于 2019-3-15 23:29:43 | 显示全部楼层
其实大小写转换可以这么玩:
  1. #include <stdio.h>
  2. int main()
  3. {   int ch;
  4.     printf("请输入一个字符");
  5.     scanf("%c",&ch);
  6.     ch^=32;
  7.     printf("%c",ch);
  8.     return 0;
  9. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-16 02:06:06 | 显示全部楼层
  1. . . . . . .
  2.         if(ch >= 65 & ch <= 90) {         // 问题出在这里,逻辑 AND 应该使用 && 表示
  3. . . . . . .
  4.         } else if(ch >= 91 & ch <= 116) { // 问题出在这里,逻辑 AND 应该使用 && 表示
  5. . . . . . .
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-16 19:49:40 | 显示全部楼层
ba21 发表于 2019-3-15 21:47
#include
int main()
{

非常抱歉,我的debug出了问题但是我想知道一个&  为什么会出现bug 可以给我解答一下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-16 19:51:32 | 显示全部楼层

非常抱歉,我的debug出了问题但是我想知道一个&  为什么会出现bug 可以给我解答一下吗?

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

使用道具 举报

发表于 2019-3-16 20:15:31 | 显示全部楼层
愈伤组织 发表于 2019-3-16 19:51
非常抱歉,我的debug出了问题但是我想知道一个&  为什么会出现bug 可以给我解答一下吗?


       单 & 是二进制位操作符,双 & 是逻辑运算符,我们需要的是逻辑运算符,看似相似,其实,本质完全不同。
       举个例子,0x01 && 0x02 的结果一定是 true,但是,0x01 & 0x02 的结果是 0,也就是 false,0x03 && 0x0c 结果是 true,0x03 & 0x0c 的结果是 false......,总之,类似的例子还有很多。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-19 22:24:29 | 显示全部楼层
jackz007 发表于 2019-3-16 20:15
单 & 是二进制位操作符,双 & 是逻辑运算符,我们需要的是逻辑运算符,看似相似,其实,本质完 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 10:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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