C语言小白,不懂错哪。

#include
#include
#include
int main()
{
int d;
double p, w, f, s;
printf("输入每吨价钱、质量、距离");
scanf_s("%f %f %d",&p,&w,&s);
if (s >= 3000) d = 0.15;
else
if (s >= 2000) d = 0.10;
else
if (s >= 1000) d = 0.08;
else
if (s >= 500) d = 0.05;
else
if (s >= 250) d = 0.02;
else d = 0;
f = p*w*s*(1 - d);
printf("输出 %10.2f",f);
system("pause");

}

c

1个回答

d的类型是int,导致你下面再给d赋值时,double赋给int会取整,d的值都是0;
scanf_s("%f %f %d",&p,&w,&s);这里,double类型使用%lf,最后一项写错了吧,s是double,为啥写了个%d

qq_43391581
qq_43391581 因为是自学的所以不懂,能和我讲下如何取值吗?
大约 2 年之前 回复
qq_43391581
qq_43391581 谢谢,已解决。
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问