谁帮我看看这道C++出了什么问题。

题目是:运输公司对用户计算运输费用,路程(skm)越远,每吨·千米运费越低,标准如下:s<250没有折扣250<=s<5005%折扣500<=s<10008%折扣1000... 题目是:运输公司对用户计算运输费用,路程(skm)越远,每吨·千米运费越低,标准如下: s<250 没有折扣
250<=s<500 5%折扣
500<=s<1000 8%折扣
1000<=s<2000 10%折扣
2000<=s<3000 15%折扣
3000<=s
下面是编程,基本是按照书上来的 ,可是结果就是不对 ,请哪位人士帮忙看一下 ,本人初学者,很多不懂的,还望赐教,感激不尽。。。

#include <stdio.h>
int main()
{
int c,s;
float p,w,d,f;
printf("please enter price,weight,discount:");
scanf("%f,%f,%d",&p,&w,&s);
if (s>=3000)
c=12;
else
c=s/250;
switch(c)
{
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));
printf("f=%10.2f\n",f);
return 0;
}
对不起各位,因为心急把题目超错勒,把
s<250 没有折扣
250<=s<500 5%折扣
500<=s<1000 8%折扣
1000<=s<2000 10%折扣
2000<=s<3000 15%折扣
3000<=s
改成
s<250 没有折扣
250<=s<500 2%折扣
500<=s<1000 5%折扣
1000<=s<2000 8%折扣
2000<=s<3000 10%折扣
3000<=s 15%折扣
真的真的很不好意思。
展开
 我来答
杨博4216
2011-02-27 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:115万
展开全部
#include <stdio.h>
int main()
{
int c,s;
float p,w,d,f;
printf("please enter price,weight,discount:");
scanf("%f,%f,%d",&p,&w,&s);
if (s>=3000)
c=12;
else
c=s/250;
switch(c)
{
case 0:d=0;break;
case 1:;
case 2:d=5;break
case 3:;
case 4:d=8;break
case 5:
case 6:
case 7:
case 8:d=10;break;
case 9:
case 10:
case 11:
case 12:d=15;break;
}
f=p*w*s*(1-(d/100));
printf("f=%10.2f\n",f);
return 0;
}
富港检测技术(东莞)有限公司_
2024-06-06 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者... 点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
jianwenh
2011-02-27 · TA获得超过333个赞
知道小有建树答主
回答量:432
采纳率:0%
帮助的人:331万
展开全部
case内缺少default
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
htht1325
2011-02-27 · TA获得超过581个赞
知道答主
回答量:303
采纳率:0%
帮助的人:157万
展开全部
问题其实出在最后一个计算式上,就是折扣率上,如果是250km那么按你的算出来d=2,d/100=0.02折扣率是2%而不是5%所以就是不对的,你自己改下就可以了吧,前面的程序没有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2011-02-27 · 超过16用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:33万
展开全部
这个题目在大话设计模式里面 很经典 楼主如果这个题目懂了 可以去看下。 好像是第一章 看后你会更喜欢编程的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户51980
2011-02-28 · TA获得超过116个赞
知道答主
回答量:165
采纳率:100%
帮助的人:0
展开全部
归解决吗?用递归反而把问题复杂化了,而且你的递归写的逻辑本身就不正确。
#include <iostream>
using namespace std;
int Min(int min_1[],int size);
int main()
{
int a,i=0,m[100],n;// 去掉min,主程序中根本都没有用到,返回值赋给的是n
cout<<"please input your string:"<<endl;
while ((a=getchar())!='\n')
{
m[i]=a;
i++;
}
n=Min(m,i-1);
cout<<"Min="<<char(n)<<endl;// n返回的是字符的ASC码值,要强制转换成字符,才是你输入的数
return 0;
}
int Min(int min_1[],int size)
{ int min,i,t;
min=min_1[0];
for(i=1;i<=size;i++)
if(min>min_1[i])
{ t=min_1[i];
min_1[i]=min;
min=t;
}
return min;
}
追问
谢谢你,不过我还没有自学到这个程度,很多函数看不懂啊?那个编程就是按照书上来的,不知道为什么找不出问题所在,按理来说应该是没有错误的......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户56489
2011-03-05 · TA获得超过502个赞
知道答主
回答量:176
采纳率:0%
帮助的人:102万
展开全部
归解决吗?用递归反而把问题复杂化了,而且你的递归写的逻辑本身就不正确。
#include <iostream>
using namespace std;
int Min(int min_1[],int size);
int main()
{
int a,i=0,m[100],n;// 去掉min,主程序中根本都没有用到,返回值赋给的是n
cout<<"please input your string:"<<endl;
while ((a=getchar())!='\n')
{
m[i]=a;
i++;
}
n=Min(m,i-1);
cout<<"Min="<<char(n)<<endl;// n返回的是字符的ASC码值,要强制转换成字符,才是你输入的数
return 0;
}
int Min(int min_1[],int size)
{ int min,i,t;
min=min_1[0];
for(i=1;i<=size;i++)
if(min>min_1[i])
{ t=min_1[i];
min_1[i]=min;
min=t;
}
return min;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式