c语言问题,高手帮帮忙。

来源:百度知道 编辑:UC知道 时间:2024/05/19 02:43:49
#include<stdio.h>
void main()
{
float x,y;
int z,d;
printf("请输入所购物品的总价格:");
scanf("%f\n",&x);
z=x/1000;
switch(z)
{
case 0:d=0;break;
case 1:d=10;break;
case 2:d=20;break;
default:d=30;
}
y=x*(1-d/100.0);
printf("%d\n",y);
}为什么得不到想要的结果,我是想输入比如2500,则有2500*0.8=2000

#include<stdio.h>
void main()
{
float x,y;
int z,d;
printf("请输入所购物品的总价格:");
scanf("%f",&x);//输入函数不能用转义字符\n
z=x/1000;
switch(z)
{
case 0:d=0;break;
case 1:d=10;break;
case 2:d=20;break;
default:d=30;
}
y=x*(1-(d/100.0));
printf("%f\n",y);//y为浮点型,要用%f
}//为什么得不到想要的结果,我是想输入比如2500,则有2500*0.8=2000

程序改一下就行了,我运行过了!
#include<stdio.h>
void main()
{
float x,y;
int z,d;
printf("请输入所购物品的总价格:");
scanf("%f",&x); //此处去掉换行
z=(int)(x/1000);
switch(z)
{
case 0:d=0;break;
case 1:d=10;break;
case 2:d=20;break;
default:d=30;
}
y=x*(1-d/100.0);
printf("%f\n",y); //给为%f
}

printf("%d\n",y); 你格式写的%d,给的值是float的自然输出不对