谁帮我看看这道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%折扣
真的真的很不好意思。 展开
展开全部
#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-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
展开全部
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询