选择if结果输出问题。请求help

#include<stdio.h>
int main()
{
int x,y;
scanf("x=%d",&x);
if(x<1) y=x;
if(1<=x&&x<10) y=2x-1;
if(x>=10) y=3x-11;
printf("x=%d,y=%d\n",x,y);
return 0;
}
为什么还没到第二个第三个x没有识别

哈喽,首先你的scanf("x=%d",&x);要求你的输入格式为x=?,比如输入x=2,程序才能识别到x为2。所以要把这句改成

scanf("%d",&x);

还有你的每个if都是互斥关系的,所以只执行其中的一个。
有用请点采纳哦~有其他问题如果没回应你可以直接私我。

if判断x的范围赋值给y,三个if只能有一个符合条件的

y=2x-1;这里啊,你可不能偷懒直接写个2x啊,C语言直接写表达式电脑是识别不出来的,你要写乘就得把星号写上必须写成
y=2*x-1;还有你下面的 y=3x-11;这个也一样,你看我改了之后

img

当然楼上的兄弟说的也没错,scanf是把你引号里的样式化字符出输入依次赋给后面的变量,你这写个x=%d这前面的x=机器没法处理么,你要想输出这个就得给前面写个printf(“x = ”);

img

如果你还有什么问题可以随时问我哦

代码有语法错误哦,正确的写法如下:

#include <stdio.h>
#include <stdlib.h>

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

img