Primer Plus 12章课后编程练习 第二题

2.在美国通常是以英里每加仑来计算油耗,在欧洲是以升每百公里来计算。下面是某程序的一部分该程序让用户选择一个模式(公制的或美制的),然后收集数据来计算油耗。

// pe12-2b.c

#include<stdio.h>
#include"pe12-2a.h"

int main()
{
    int mode;

    printf("Enter 0 for metric mode,1 for US mode :");
    scanf_s("%d", &mode);
    while (mode >= 0)
    {
        set_mode(mode);
        get_info();
        show_info();
        printf("Enter 0 for metric mode,1 for US mode ,");
        printf("(-1 to quit):");
        scanf_s("%d", &mode);
    }
    printf("Done");
    getchar();
    return 0;
}

下面是一些输出示例:
Enter 0 for metric mode, 1 for US mode: 0
Enter distance traveled in kilometers: 600
Enter fuel consumed in liters: 78.8
Fuel consumption is 13.13 liters per 100 km.
Enter fuel consumed in gallons: 12.7 Fuel consumption is 34.2 miles per gallon.
Enter distance traveled in miles: 388
Fuel consumption is 25.4 miles per gallon.
Enter 0 for metric mode, 1 for US mode (-1 to quit): -1 Done.


//pe12-2a.h

void set_mode(int mode);

void get_info();

void show_info();

//pe12-2a.cpp

#include<stdio.h>

float Long;
int m;          //全局变量

void set_mode(int mode)
{
    m = mode;  //赋值
    if (mode > 1 || mode< -1)
    {
        m = int(mode%2);
        switch (m)
        {
        case 0:
            printf("Invalid mode specified.Mode 0 used.\n");
            break;
        case 1:
            printf("Invalid mode specified .mode 1(US) used.\n");
            break;
        default:
            break;
        }
        return;
    }

}

void get_info()
{
    switch (m)
    {
    case 0:
        printf("Enter distance traveled in kilometers:");
        scanf_s("%f", &Long);
        break;
    case 1:
        printf("Enter distance traveled in miles;");
        scanf_s("%f", &Long);
        break;
    default:
        break;
    }
}

void show_info()
{
    switch (m)
    {
    case 0:
        printf("Enter fuel comsumed in liters:%5.1f\n",13.13*(Long/100));
        printf("Fuel consumption is 13.13 liters per 100 km.\n");
        break;
    case 1:
        printf("Enter fuel comsumed in gallons:%5.1f\n",Long/34.2);
        printf("Fuel consumption is 34.2 miles per gallon.\n");
        break;
    default:
        break;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值