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);

}

相关推荐
a诠释淡然10 分钟前
C++模板元编程—现代C++的黑魔法
开发语言·c++
社交怪人13 分钟前
【判断整除】信息学奥赛一本通C语言解法(题号1046)
c语言
charlie11451419118 分钟前
现代C++工程:constexpr 基础:编译期求值的艺术
开发语言·c++
tianyuanwo22 分钟前
C语言编译完全指南:从工具链到跨架构静态与动态编译
c语言·动态编译·静态编译
MemoriKu22 分钟前
Flutter 相册 APP 视频模态稳定化实战:从视频抽帧、Embedding 元数据到 Android 真机启动修复
android·开发语言·前端·flutter·架构·音视频·embedding
SilentSamsara26 分钟前
特征工程系统方法论:编码、分箱、交互特征与特征选择
开发语言·人工智能·python·机器学习·青少年编程·信息可视化·pandas
韭菜钟27 分钟前
将vscode的数据从C盘迁移至D盘
c语言·ide·vscode
morning_judger27 分钟前
Agent开发系列(十)-知识库建设(架构总览)
开发语言·人工智能
ch.ju31 分钟前
Java程序设计(第3版)第四章——继承的特点
java·开发语言
geovindu33 分钟前
python:Coroutines Pattern
开发语言·python·设计模式·协程模式