小腥腥 发表于 2020-11-9 21:00:04

大佬求助

/*请根据以下情况求y的值:
(1)当x<1时,y=x
(2)当1≤x<10时,y=2x-1
(3)当x≥10时,y=3x-11*/
/*我用if ....if...else语句为什么结果不对(我知道if...else if...else语句,就想知道这样做为什么不对*/

#include<stdio.h>
int main()
{
        int x,y;
        scanf("%d",&x);
        if(x<1)
        {
                y=x;
                printf("y=%d",x);
               
               
        }
if(1<=x<10)
        {
                y=(2*x)-1;
                printf("y=%d",y);
               
               
        }
        else
        {
                y=(3*x)-1;
                printf("y=%d\n",y);
        }
       
}

jackz007 发表于 2020-11-9 21:05:49

本帖最后由 jackz007 于 2020-11-9 21:17 编辑

    这种写法错误
if(1<=x<10)
    得改成这样:
if(x >= 1 && x < 10)
    修改后的完整代码:
#include <stdio.h>

int main(void)
{
      int x , y                               ;
      scanf("%d" , & x)                     ;
      if(x < 1) y = x                         ;
      else if(x >= 1 && x < 10) y = 2 * x - 1 ;
      else y = 3 * x - 11                     ;
      printf("y = %d\n" , y)                  ;
}

小腥腥 发表于 2020-11-9 21:37:23

谢谢
页: [1]
查看完整版本: 大佬求助