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

}

相关推荐
yuuki23323317 分钟前
【数据结构】顺序表+回调函数
c语言·数据结构·后端
南棱笑笑生28 分钟前
20251027在Ubuntu20.04.6上编译AIO-3576Q38开发板的Buildroot系统解决qt5webengine编译异常的问题
开发语言·qt·rockchip
沅霖31 分钟前
android kotlin语言中的协程
android·开发语言·kotlin
xiaobobo333033 分钟前
c语言中const关键字和枚举enum的新认识
c语言·开发语言·const·enum
葛小白137 分钟前
C#数据类型:List
开发语言·c#
合作小小程序员小小店41 分钟前
web开发,在线%蛋糕销售%管理系统,基于asp.net,webform,c#,sql server
开发语言·后端·asp.net·html5·教育电商
小龙报1 小时前
《算法通关指南数据结构和算法篇(3)--- 栈和stack》
开发语言·数据结构·c++·算法·创业创新·学习方法·visual studio
m0_748233641 小时前
C++小协程栈和临时变量及作用域的栈溢出问题分析
开发语言·c++
怪力乌龟1 小时前
Go语言数组和切片
开发语言·后端·golang
红宝村村长1 小时前
Golang交叉编译到Android上运行
android·开发语言·golang