C Primer Plus(第六版)12.9 编程练习 第2题

//pe12-2b.c

#include <stdio.h>

#include "pe12-2a.h"

int main(void)

{

int mode;

printf("Enter 0 for metric mode, 1 for US mode: ");

scanf("%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("%d", &mode);

}

printf("Done.\n");return 0;

}

//pe12-2a.h

void set_mode(int mode);

void get_info(void);

void show_info(void);

//pe12-2a.c

#include "pe12-2a.h"

#include <stdio.h>

static float distance=0.0;

static float fuel_consumed=0.0;

static int Mode;

void set_mode(int mode)

{

if(mode == 1 || mode == 0)//只有输入正确才保存到Mode

Mode=mode;

}

void get_info(void)

{

if(Mode==0)

{

printf("Enter distance traveled in kilometers:");

scanf("%f",&distance);

printf("Enter fuel consumed in liters: ");

scanf("%f",&fuel_consumed);

}

else if(Mode==1)

{

printf("Enter distance traveled in miles:");

scanf("%f",&distance);

printf("Enter fuel consumed in gallons: ");

scanf("%f",&fuel_consumed);

}

}

void show_info(void)

{

if(Mode==0)

printf("Fuel consumption is %.2f liters per 100 km.\n",fuel_consumed/distance*100);

else if(Mode==1)

printf("Fuel consumption is %.1f miles per gallon.\n",distance/fuel_consumed);

}

相关推荐
若阳安好2 分钟前
【java】任务流批处理平台
java·开发语言
chimooing17 分钟前
Hermes与OpenClaw的技术碰撞:从JavaScript引擎优化到企业级数据采集的深度解析
开发语言·javascript·ecmascript
XiYang-DING25 分钟前
【Java】Lambda表达式
java·开发语言·python
来自远方的老作者27 分钟前
第9章 函数-9.7 函数嵌套
开发语言·python·函数·函数嵌套
隔山打牛牛31 分钟前
Spring的两大核心
java·开发语言
皮卡蛋炒饭.31 分钟前
Linux进程信号
开发语言·c++
报错小能手38 分钟前
ios开发方向——swift并发进阶核心 Task、Actor、await 详解
开发语言·学习·ios·swift
♛识尔如昼♛40 分钟前
C 基础(9) - 数组和指针
c语言·指针·数组·多维数组
小辉同志44 分钟前
208. 实现 Trie (前缀树)
开发语言·c++·leetcode·图论
A-刘晨阳44 分钟前
当数据学会“秒回“:工业4.0时代的实时计算革命
开发语言·数据库·perl