鱼C论坛

 找回密码
 立即注册
查看: 2621|回复: 3

[已解决]c语言计算折扣运费问题

[复制链接]
发表于 2018-8-5 14:33:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
void main()
{
       double f,p,w;
           int s,d;
           printf("请依次输入基本运费、货物重量、运输距离\n");
           scanf("%lf%lf%d",p,w,s);
           if (s >= 3000 )
           {
                   d = 12;
           }
           else
           {
                   d = s / 250 ;
           }
           switch (s)
           {
           case 0:d = 0;break;
           case 1:d = 2;break;
           case 2:
       case 3:d = 5;break;
           case 4:
           case 5:
           case 6:
       case 7:d = 8;break;
       case 8:
           case 9:
           case 10:
           case 11:d = 10;break;
           case 12:d = 15;break;
           }
           f = p * w * s * (1-d/100.0);
           printf("总运费为%g\n",f);
}
各位大神求教了。
为什么我的程序可以输入但是没有输出?另外看讲解标准最后一行printf("总运费为%15.4f\n",f);
15.4啥意思呀,求大佬解释。
好人一生平安~
最佳答案
2018-8-5 15:51:11
本帖最后由 无符号整形 于 2018-8-5 17:09 编辑

%15.4f就是说假如宽度不够15位用空格填充,保留4位小数。
你的程序可以输入没有输出可能是因为scanf缺少有效的分隔符。
比如我给你一段字符串:
18.283741.287374

相信你也不能将它用(%lf%lf%d)的格式解释成两个float和1个int吧?
所以你应该这样写:
%lf %lf %d

这样输入才有效。
而且你还少了&
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-5 15:51:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 无符号整形 于 2018-8-5 17:09 编辑

%15.4f就是说假如宽度不够15位用空格填充,保留4位小数。
你的程序可以输入没有输出可能是因为scanf缺少有效的分隔符。
比如我给你一段字符串:
18.283741.287374

相信你也不能将它用(%lf%lf%d)的格式解释成两个float和1个int吧?
所以你应该这样写:
%lf %lf %d

这样输入才有效。
而且你还少了&
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-5 16:11:57 | 显示全部楼层
  1. scanf("%lf %lf %d", &p, &w, &s);
复制代码

一般上,多重输入,最好有空格。你的程序的最大问题是 scanf 的变量没有 &

建议不要用 void main(),而是 int main(void),然后配 return 0。
这样的话,在调试的时候可以知道程序是否正常退出

你的 switch,如果没有用到的话,就把不必要的删掉,换成 default:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-5 17:08:11 | 显示全部楼层
感谢回答 已解决。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 17:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表