因为switch (x) 中的x只能是整型(包括字符)或枚举型,而输入的x可能为小数,所以要整形k转换一下;
因为只有3种情况所以用3个判断就行了;
代码如下:
float x;
float y=0.0;
int k;
printf("请输入一个浮点数字!\n");
scanf("%f",&x);
if(x<1)k=0;
else if(x>=1&&x<10)k=1;
else if(x>10) k=2;
switch(k)
{
case 0:y=x;break;
case 1:y=2*x-1;break;
case 2:y=3*x-11;break;
}
printf("y=%f",y);