分段函数求值问题,哪位好人帮我看看问题出在哪里了

Description
有如下分段函数
F(x) = x^2 + 1 当x> 0时;
F(x) = -x 当x<0时;
F(x) = 100.0 当x=0时;
编程根据输入的不同x(x为实数),输出其对应的函数值

Input
多组输入,每组一个实数x。处理到文件结束。

Output
对于每组输入x,输出其对应的F(x),每组一行,结果保留1位小数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
float x,y;

while(scanf("%f",&x) != EOF)
{
    if(x>0)
        y=x*x+1;
    else if(x<0)
        y=-x;
    else
        y=100.0;
    printf("%.1f\n",y);
}

return 0;

}

没错啊