|
5鱼币
- #include<stdio.h>
- int main()
- {
- float w,s,p;
- float f;
- printf("请输入吨数与公里数和运费(单价):");
- scanf("%d %d %d",&w,&s,&p);
-
- if(s>=250 && s<500){
- p = p*0.99;
- f = p*w*s;
- }else if(s>=500 && s<1000){
- p = p*0.97;
- f = p*w*s;
- }else if(s>=1000 && s<2000){
- p = p*0.95;
- f = p*w*s;
- }else if(s>=2000 && s<3000){
- p = p*0.98;
- f = p*w*s;
- }else if(s>=3000){
- p = p*0.9;
- f = p*w*s;
- }
-
- printf("总价是: %.2f\n",f);
-
- return 0;
- }
复制代码
为甚麽改来改去都是0.00啊...
求助,谢谢
本帖最后由 df3379 于 2019-7-30 14:29 编辑
- #include<stdio.h>
- int main()
- {
- do
- {
- float w,s,p;
- double f;
- printf("请输入吨数与公里数和运费(单价):");
- scanf("%f %f %f",&w,&s,&p);
-
- if(s>0 && s<249){
- f = p*w*s;
- }else if(s>=250 && s<500){
- p = p*0.99;
- f = p*w*s;
-
- }else if(s>=500 && s<1000){
- p = p*0.97;
- f = p*w*s;
-
- }else if(s>=1000 && s<2000){
- p = p*0.95;
- f = p*w*s;
-
- }else if(s>=2000 && s<3000){
- p = p*0.98;
- f = p*w*s;
-
- }else if(s>=3000){
- p = p*0.9;
- f = p*w*s;
-
- }
- printf("\n重量为:%.1f吨\n\n里程数为:%.1f公里\n\n运费为:%.2f元/公里\n\n",w,s,p);
- printf("本次运输总价是: %.2f元\n\n=========================分隔线==================\n\n",f);
- }
- while('%f');
- return 0;
- }
复制代码
变量定义时修改一下就行了!
主要问题在f变量修改为双精度。结果为单精度会出现数据溢出.
低于250公里的选项没有,补上就好。
希望设我为最佳答案哟
|
最佳答案
查看完整内容
变量定义时修改一下就行了!
主要问题在f变量修改为双精度。结果为单精度会出现数据溢出.
低于250公里的选项没有,补上就好。
希望设我为最佳答案哟
|