我这个哪错了?部分正确。

分段函数
已知:y是x的函数,
当x<10时,y=-x;

当x=10时,y=31;

当x>10,且x<=100时,y=3x-7;

当x>100时,y= x2-5x+1;

输入格式:

任意输入一个int类型的整数x。

输出格式:

输出为一个整数,单独占一行,即x对应的函数值。

输入样例:

5
结尾无空行
输出样例:

-5
结尾无空行
main(){
int x,y;
scanf("%d",&x);
if(x<10){
y=-x;
}
if(x=10){
y=31;
}
if(x>10&&x<=100){
y=3x-7;
}
if(x>100){
y=x
x-5*x+1;
}
printf("%d",y);
}

x>100时
不知道你是不是少写了* 应该是y=xx-5x+1,其次他虽然说了输入的是int型的,但是x*x还是可能会爆int型的范围的,所以最好还是用long型接收该值

既然说结尾无空行,为什么还要求单独占一行呢,搞不懂