作业帮 > 综合 > 作业

C语言程序设计 C++ 邮资计算

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/28 07:21:20
C语言程序设计 C++ 邮资计算
设计一个邮资计算程序.已知某邮局邮寄的基本运费为20元(含5000g),重量超出部分的收费(每1000克)如下:
\x055000以内\x058000以内\x058000以上
北京\x050.8\x051.0\x051.2
上海\x051.0\x051.2\x051.4
深圳\x051.2\x051.4\x051.6
不足1000克的按1000克计算.要求用户选择目的地和输入邮寄的重量后,计算出用户应付的邮资.
例如,用户希望将11020克的包裹寄往北京,则邮资为20+0.8*5+1.0*2=26元.其中20元为基本运费,超重6020克,因此5000克按照0.8元/千克收费,1020克按照1.0元/千克收费.
具体过程为:
1.\x05输出地址列表,要求用户选择目的地;
2.\x05输出“当前目的地为xxxx,正确?(Y/N)”,如果用户输入Y,转到第3步,否则返回第1步;
3.\x05要求用户输入重量;
4.\x05输出“重量为xxxx,正确?(Y/N)”,如果用户输入Y,转到第5步,否则返回第3步;
5.\x05输出下面的信息
目的地:\x05\x05重量(g):\x05
基本运费:\x05\x05附加运费:\x05
总计:
C语言程序设计 C++ 邮资计算
首先num[0]=0你没有排除;其次后边你直接排序是排不出结果的,因为里面有很多重复值.我给你重写了程序.
#include <stdio.h>
int num[9999];
void main()
{
int a,b,c,d,ia,ib,ic,id,i=0,j,t,k,s=0;
printf("请输入邮票面值:");
scanf ("%d%d%d%d",&a,&b,&c,&d);
for (ia=0;ia<=5;ia++) //所有结果(包含重复值)
{
for (ib=0;ib<=5;ib++)
{
for (ic=0;ic<=5;ic++)
{
for (id=0;id<=5;id++)
{
if (ia+ib+ic+id<=5&&ia+ib+ic+id>=1)
{
num[i]=a*ia+b*ib+c*ic+d*id;
i++;}
}
}
}
}
int count=i;
for(i=0;i<count;i++){ //去除重复结果
j=i+1;
while(j<count){
if(num[j]==num[i])
{
for(t=j;t<count-1;t++)
count--; }
else
}
}
while(s<count-1) //把结果从小到大排序
{for(j=0;j<count-1;j++){ //一次排序,把最大值放在队尾
if(num[j]>num[j+1]){
k=num[j];
num[j]=num[j+1];
num[j+1]=k;
}
}
s++;
}
printf("所构成的邮资是:");
for(i=0;i<count;i++) //输出结果
printf("%d,",num[i]);
printf("\n");
}