标题:求大神教教本菜鸟写道程序可以吗 用if语句 球球了
只看楼主
LiuZz
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-10-15
结帖率:0
已结贴  问题点数:20 回复次数:5 
求大神教教本菜鸟写道程序可以吗 用if语句 球球了
编写程序,计算使用某快递公司运输货物的运费(用if语句)。
要求:
1)显示目的城市列表,通过输入需要选择城市。
2)输入货物重量
3)根据运费价格表来计算运费,其中首重费用为1kg以内的费用,超过1kg的部分每公斤使用续重费用计算。
4)1kg内的总运费=首重费用
大于1kg的总运费=首重费用+(重量-1)*续重
城市    费用
广东    首重8元,续重2元
上海    首重9元,续重7元
北京    首重12元,续重10元
东三省    首重15元,续重13元


[此贴子已经被作者于2020-11-21 15:40编辑过]

搜索更多相关主题的帖子: 城市 输入 计算 if 语句 
2020-11-21 15:38
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
得分:5 
回复 楼主 LiuZz
程序代码:
// 1、加 0.5,再强制转换为 int 型,是四舍五入的需要,超 0.5kg 以下舍去,超 0.5kg 不足 1kg 按 1kg 计价 
// 2、其实本题,不需要用 if ... else 语句
#include <stdio.h>
int main()
{
    int num;
    float weiht;
    float price;
    printf("请输入城市列表: 1 广东、2 上海、3 北京、4 东三省\n");
    printf("请输入城市列表数字:");
    scanf_s("%d", &num);
    printf("请输入货物重量:");
    scanf_s("%f", &weiht);

    switch (num)
    {
        case 1:
        {
            if (weiht >= 1)
                price = 8.0 + (int)(weiht - 1 + 0.5) * 2.0;
            else
                price = 8.0;
            break;
        }
        case 2:
        {
            if (weiht >= 1)
                price = 9.0 + (int)(weiht - 1 + 0.5) * 7.0;
            else
                price = 9.0;
            break;
        }
        case 3:
        {
            if (weiht >= 1)
                price = 12.0 + (int)(weiht - 1 + 0.5) * 10.0;
            else
                price = 12.0;
            break;
        }
        case 4:
        {
            if (weiht >= 1)
                price = 15.0 + (int)(weiht - 1 + 0.5) * 13.0;
            else
                price = 15.0;
            break;
        }
    }
    printf("运价为 %0.2f 元\n", price);
    return 0;
}


[此贴子已经被作者于2020-11-21 22:14编辑过]

2020-11-21 22:13
llc_xz
Rank: 2
等 级:论坛游民
威 望:1
帖 子:4
专家分:14
注 册:2016-7-5
得分:5 
/*功能:计算快递运费
 *说明:
 *1.对最终费用四舍五入
 *2.只使用IF语句实现
 */

#include <stdio.h>

int main()
{
    int city;
    float weight;

    printf("目标城市列表: 1. 广东  2.上海  3.北京  4.东三省 \n");

    printf("请选择目的地城市(输入对应的数字):");
error1:scanf("%d", &city);
    if (city <1 || city > 4)
        {
            printf("选择有误,请重新选择。\n");
            printf("请重新选择目的地城市(输入对应的数字):");
            goto error1;
        }

    printf("请输入货物重量(Kg):");
error2:scanf("%f", &weight);

    if (weight <= 0)
        {
            printf("输入有误,请确认后重新输入。\n");
            printf("请重新输入货物重量(Kg):");
            goto error2;
        }

    if (weight <= 1)
        {
            if (city == 1) printf("运费:8元。\n");
            if (city == 2) printf("运费:9元。\n");
            if (city == 3) printf("运费:12元。\n");
            if (city == 4) printf("运费:15元。\n");
        }

    if (weight > 1)
        {
            if (city == 1) printf("运费:%d元。\n", (8 + (int)(((weight - 1) * 2) + 0.5)));
            if (city == 2) printf("运费:%d元。\n", (9 + (int)(((weight - 1) * 7) + 0.5)));
            if (city == 3) printf("运费:%d元。\n", (12 + (int)(((weight - 1) * 10) + 0.5)));
            if (city == 4) printf("运费:%d元。\n", (15 + (int)(((weight - 1) * 13) + 0.5)));
        }
    return 0;
}

[此贴子已经被作者于2020-11-22 05:15编辑过]

2020-11-22 04:55
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:5 
回复 楼主 LiuZz
程序代码:
#include <stdio.h>
int main()
{
    int num;
    float weiht,price;
    printf("请输入城市序号: 1 广东、2 上海、3 北京、4 东三省\n");
    scanf("%d",&num);
    printf("请输入货物重量:");
    scanf("%f",&weiht);

    switch(num)
    {
    case 1:price=6.0+(int)(weiht+0.5)*2.0;break;
    case 2:price=2.0+(int)(weiht+0.5)*7.0; break;
    case 3:price=2.0+(int)(weiht+0.5)*10.0;break;
    case 4:price=2.0+(int)(weiht+0.5)*13.0;break;
    }
    printf("运价为 %0.2f 元\n",price);
    return 0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-11-22 20:36
hbccc
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:108
专家分:315
注 册:2020-2-18
得分:5 
#include <stdio.h>
#include <string.h>
void menu();
int yf(int,int,int);

int main()
{
    char ch=0;
    int gd=0,sh=0,bj=0,dss=0;
    int zl=0,gdzl=0,shzl=0,bjzl=0,dsszl=0;
    int gdyf=0,shyf=0,bjyf=0,dssyf=0,zyf=0;
   
    do{
    menu();
    printf("请选择城市:");
    while(ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5')
    {
       if(ch=='\n')printf("请选择城市:");
        ch=getchar();
    }
    if (ch=='5')break;
   
    printf("请输入重量:");
    scanf("%d",&zl);
   
    if(ch=='1'){gdzl=gdzl+zl;gdyf=yf(8,2,gdzl);gd=1;}
    else if(ch=='2'){shzl=shzl+zl;shyf=yf(9,7,shzl);sh=1;}
    else if(ch=='3'){bjzl=bjzl+zl;bjyf=yf(12,10,bjzl);bj=1;}
    else if(ch=='4'){dsszl=dsszl+zl;dssyf=yf(15,13,dsszl);dss=1;}
   
   
    zyf=gdyf+shyf+bjyf+dssyf;
   
    if(gd==1)printf("\n您寄往广东的快递费用为:%d元。",gdyf);
    if(sh==1)printf("\n您寄往上海的快递费用为:%d元。",shyf);
    if(bj==1)printf("\n您寄往北京的快递费用为:%d元。",bjyf);
    if(dss==1)printf("\n您寄往东三省的快递费用为:%d元。",dssyf);
   
    printf("\n\n合计总运费为:%d元。" ,zyf);
   
    while((ch=getchar())!='\n');
    printf("\n\n还寄么?(N--不寄了,回车--继续寄)");
    ch=getchar();
    if(ch=='n'||ch=='N')break;
   
    //while((ch=getchar())!='\n');
   
    }while(1);
   
     
    if(gd==1)printf("\n您寄往广东的快递费用为:%d元。",gdyf);
    if(sh==1)printf("\n您寄往上海的快递费用为:%d元。",shyf);
    if(bj==1)printf("\n您寄往北京的快递费用为:%d元。",bjyf);
    if(dss==1)printf("\n您寄往东三省的快递费用为:%d元。",dssyf);
   
    printf("\n\n合计总运费为:%d元。\n\n" ,zyf);
    printf("\n\n*****感谢使用本系统*****\n\n");
    return 0;
}

int yf(int a,int b,int c)
{
    return a+(c-1)*b;
}


void menu()
{
    printf("\n  ==========京上广快递公司竭诚为您服务==========\n");
    for (int i=0;i<50;i++)
    {
        printf("*");
    }
    printf("\n");
    printf("请选择目的地:\n");
    printf("  城市\t\t费用\n");
    printf("1)广东\t\t首重 8元,续重 2元\n");
    printf("2)上海\t\t首重 9元,续重 7元\n");
    printf("3)北京\t\t首重12元,续重10元\n");
    printf("4)东三省\t首重15元,续重13元\n");
    printf("5)退出\n");
    for (int i=0;i<50;i++)
    {
        printf("*");
    }
    printf("\n");
}
2020-11-23 19:51
尔二
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2020-10-19
得分:0 
回复 2楼 风过无痕1989
请问有比if简单的吗。。。
2020-12-02 22:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503955-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.381397 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved