身寸白勺女少 发表于 2019-4-19 21:35:33

【求助帖】关于if语句的作业

if后面的表达式和小甲鱼给的答案不一样,编译输入大小写转换不出来
想问一下if后面的表达式可以这样表示吗,为啥?



char sle;
      printf("请输入一个字符:");
      scanf("%c",&sle);


                if('A'<=sle<='Z')
      {               sle = sle -32;
                        printf("%c\n",sle);
      }


                else if ('a'<=sle<='z')
      {               sle = sle +32;
                        printf("%c\n",sle);
      }
                else
                {
                        printf("不做改动。\n");


身寸白勺女少 发表于 2019-4-19 21:50:39

好像有点错误。。。。。就是为啥if里面的表达式不能是一串进行比较,而是要用逻辑运算符隔开

jackz007 发表于 2019-4-19 21:59:22

本帖最后由 jackz007 于 2019-4-19 22:00 编辑

      以下 2 句写法有问题
                if('A'<=sle<='Z')
. . . . . .
                else if ('a'<=sle<='z')
      必须这么改:
               if(sle >= 'A' && sle <='Z')
. . . . . .
               else if (sle >= 'a' && sle<='z')
       不要问为什么,因为这是规则,我们只要遵守就可以了。

910201513 发表于 2019-4-19 22:01:15

比较运算符是指可以使用>,<,==等运算符比较两个值。当用运算符比较两个值时,结果是一个逻辑值,不是 1(成立) 就是 0(不成立)
所以当出现1<x<10
就是先判断1<x
若为真,判断1<10
若为假,判断0<10

身寸白勺女少 发表于 2019-4-19 22:08:30

jackz007 发表于 2019-4-19 21:59
以下 2 句写法有问题

      必须这么改:


好哒,谢谢
页: [1]
查看完整版本: 【求助帖】关于if语句的作业