谁帮我看看这道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%折扣
真的真的很不好意思。 展开
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%折扣
真的真的很不好意思。 展开
6个回答
展开全部
#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;
}
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 广告
2024-06-06 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
展开全部
case内缺少default
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题其实出在最后一个计算式上,就是折扣率上,如果是250km那么按你的算出来d=2,d/100=0.02折扣率是2%而不是5%所以就是不对的,你自己改下就可以了吧,前面的程序没有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个题目在大话设计模式里面 很经典 楼主如果这个题目懂了 可以去看下。 好像是第一章 看后你会更喜欢编程的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
归解决吗?用递归反而把问题复杂化了,而且你的递归写的逻辑本身就不正确。
#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;
}
#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;
}
追问
谢谢你,不过我还没有自学到这个程度,很多函数看不懂啊?那个编程就是按照书上来的,不知道为什么找不出问题所在,按理来说应该是没有错误的......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
归解决吗?用递归反而把问题复杂化了,而且你的递归写的逻辑本身就不正确。
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询