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

}

相关推荐
skywalk81634 分钟前
CodeArts碰到问题:CodeArts 智能体使用失败,显示:会话创建失败,请稍后重试
开发语言·python
白露与泡影16 分钟前
从区间锁到行锁:一次高并发写入死锁治理实战
java·开发语言
小短腿的代码世界18 分钟前
VLC-Qt深度解析:Qt应用中的专业视频播放方案
开发语言·qt
丑八怪大丑22 分钟前
Java范型
java·开发语言
加藤不太惠23 分钟前
Nacos简单实用集群创建
java·开发语言·nacos
我能坚持多久25 分钟前
C++的Vector学习:从功能探索到底层实现
开发语言·c++·学习
她说彩礼65万26 分钟前
C语言 动态内存管理
c语言·开发语言·算法
傻啦嘿哟26 分钟前
管好PPT的“骨架”:用Python控制页面与文档属性
开发语言·javascript·c#
凤凰院凶涛QAQ27 分钟前
《C++转java快速入手系列》类与对象篇
java·开发语言·c++
时空系28 分钟前
第8篇:模板与实例——面向对象编程入门(上)python中文编程
开发语言·python