具体如下:
代码本身没有错误,但没有完全反映函数表达式的意义,改如下:
int main (){
double x,y;
int c;
printf("输入x的值:");
scanf("%lf",&x);
if((c=x/10)<0) c=-1;
switch (c){
//case 4:删除此行,函数定义域中无40
case 3:
case 2:y=((-0.5)*x+3);break;
case 1:y=10;break;
case 0:y=x;break;
case -1:y=0;break;
default:c=-2;//超出定义域
}
if(c==-2) printf("输入错误!\n");
else printf("%f\n",y);
}