C语言程序设计:现代设计方法习题笔记《chapter5》下篇

第七题

                        b7a518bac16e4a3ba21c539655666c9d.png

题目分析:求最大最小值转换为条件判断问题,最大值有四种可能,最小值相应有三种情况,给出下列代码。

示例代码:

#include <stdio.h>int main() {int num1, num2, num3, num4; // 定义四个变量来存储输入的数字int max, min; // 定义变量来保存最大值和最小值printf("Enter four integere: ");scanf_s("%d %d %d %d", &num1, &num2, &num3, &num4);// 初始化最大值和最小值为第一个数字max = num1;min = num1;if (num2 > max || num3 > max || num4 > max) {max = num2 > num3 ? (num2 > num4 ? num2 : num4) : (num3 > num4 ? num3 : num4);}if (num2 < min || num3 < min || num4 < min) {min = num2 < num3 ? (num2 < num4 ? num2 : num4) : (num3 < num4 ? num3 : num4);}// 输出结果printf("Largest: %d\n", max);printf("Smallest: %d\n", min);return 0;
}

输出

        ​​​​​​​        ​​​​​​​        ​​​​​​​        733948c1345441438afdef04040b4918.png

第八题

 30bb35713858404b9fad2a86522a949a.png

 题目分析:根据输入时间,匹配最接近的下一时刻,然后匹配对应的到达时间,得出代码。

示例代码

#include <stdio.h>
#include <string.h>int main() {int hour, minu, input;char found[100], time[100];// 输入时间printf("Enter a 24-hour time: ");scanf_s("%d:%d", &hour, &minu);input = hour * 60 + minu;// 飞机起飞时间int fly_time1 = 8 * 60;int fly_time2 = 9 * 60 + 43;int fly_time3 = 11 * 60 + 19;int fly_time4 = 12 * 60 + 47;int fly_time5 = 14 * 60;int fly_time6 = 15 * 60 + 45;int fly_time7 = 19 * 60;int fly_time8 = 21 * 60 + 45;const char* time1 = "8:00 a.m.";const char* time2 = "9:43 a.m.";const char* time3 = "11:19 a.m.";const char* time4 = "12:47 p.m.";const char* time5 = "14:00 p.m.";const char* time6 = "15:45 p.m.";const char* time7 = "19:00 p.m.";const char* time8 = "21:45 p.m.";int closestGreater = -1; // 初始化为一个不可能的值// 检查每一个单独的值if (fly_time1 > input) {closestGreater = fly_time1;strcpy_s(time, time1);strcpy_s(found, "10:16 a.m.");}if (fly_time2 > input && (closestGreater == -1 || fly_time2 - input < closestGreater - input)) {closestGreater = fly_time2;strcpy_s(time, time2);strcpy_s(found, "11:52 a.m.");}if (fly_time3 > input && (closestGreater == -1 || fly_time3 - input < closestGreater - input)) {closestGreater = fly_time3;strcpy_s(time, time3);strcpy_s(found, "1:31 p.m.");}if (fly_time4 > input && (closestGreater == -1 || fly_time4 - input < closestGreater - input)) {closestGreater = fly_time4;strcpy_s(time, time4);strcpy_s(found, "3:00 p.m.");}if (fly_time5 > input && (closestGreater == -1 || fly_time5 - input < closestGreater - input)) {closestGreater = fly_time5;strcpy_s(time, time5);strcpy_s(found, "4:08 p.m.");}if (fly_time6 > input && (closestGreater == -1 || fly_time6 - input < closestGreater - input)) {closestGreater = fly_time6;strcpy_s(time, time6);strcpy_s(found, "5:05 p.m.");}if (fly_time7 > input && (closestGreater == -1 || fly_time7 - input < closestGreater - input)) {closestGreater = fly_time7;strcpy_s(time, time7);strcpy_s(found, "9:20 p.m.");}if (fly_time8 > input && (closestGreater == -1 || fly_time8 - input < closestGreater - input)) {closestGreater = fly_time8;strcpy_s(time, time8);strcpy_s(found, "11:58 p.m.");}if (closestGreater != -1) {printf("Closest departure time is %s, arriving at %s\n", time, found);}else {printf("没有找到大于输入时间的飞行时间。\n");}return 0;
}

输出

        ​​​​​​​        ​​​​​​​     b689646b03b74fd790a3755cb26833c7.png

第九题

        ​​​​​​​        97fe098f4ae0472c9c6f3984a2319063.png

示例代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 函数声明
int compareDates(int m1, int d1, int y1, int m2, int d2, int y2);int main() {int month1, day1, year1;int month2, day2, year2;// 提示用户输入第一个日期printf("Enter first date(mm/dd/yy): ");if (scanf_s("%d/%d/%d", &month1, &day1, &year1) != 3) {printf("输入错误。\n");return 1;}// 提示用户输入第二个日期printf("Enter second date(mm/dd/yy): ");if (scanf_s("%d/%d/%d", &month2, &day2, &year2) != 3) {printf("输入错误。\n");return 1;}// 比较两个日期if (compareDates(month1, day1, year1, month2, day2, year2)) {printf("%02d/%02d/%02d is earlier than %02d/%02d/%02d\n", month1, day1, year1, month2, day2, year2);}else {printf("%02d/%02d/%02d is earlier than %02d/%02d/%02d\n", month2, day2, year2, month1, day1, year1);}return 0;
}// 比较两个日期,返回 1 表示第一个日期更早,0 表示第二个日期更早
int compareDates(int m1, int d1, int y1, int m2, int d2, int y2) {if (y1 < y2 || (y1 == y2 && m1 < m2) || (y1 == y2 && m1 == m2 && d1 < d2)) {return 1;}else if (y1 > y2 || (y1 == y2 && m1 > m2) || (y1 == y2 && m1 == m2 && d1 > d2)) {return 0;}else {return 0; // 如果两个日期相同}
}

输出

        ​​​​​​​        ​​​​​​​        66779f6c197740cb963eacec17cbf3a6.png

 

第十题

        e085fd6b9369423b8e1fe9677f738a77.png

示例代码

#include <stdio.h>int main() {int score; // 存储成绩分数// 提示用户输入成绩分数printf("Enter a numerical grade: ");scanf_s("%d", &score);// 检查输入的成绩分数是否在合理范围内if (score < 0 || score > 100) {printf("错误:成绩分数应在 0 到 100 之间。\n");return 1; // 返回错误代码}// 使用 switch 语句判断成绩等级switch (score / 10) {case 10:printf("Letter grade: A\n");break;case 9:       printf("Letter grade: A\n");break;case 8:printf("Letter grade: B\n");break;case 7:printf("Letter grade: C\n");break;case 6:printf("Letter grade: D\n");break;default:printf("Letter grade: F\n");break;}return 0;
}

输出

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        fa28de508a2840c8b51938fe32f5b5f2.png

第十一题

        271500e17b5f4f2db34f1ea679ab8e29.png 

示例代码

 

#include <stdio.h>
#include <string.h>int main() {int number; // 存储输入的两位数char result[50] = ""; // 存储英文单词的结果// 提示用户输入一个两位数printf("Enter a two-digit number: ");if (scanf_s("%d", &number) != 1) {printf("输入错误。\n");return 1;}// 检查输入的数字是否在合理范围内if (number < 10 || number > 99) {printf("错误:输入的数字应为两位数(10-99)。\n");return 1; // 返回错误代码}// 获取十位和个位上的数字int tens = number / 10;int ones = number % 10;// 特殊处理 11 到 19 的情况if (tens == 1 && ones >= 1) {switch (number) {case 11:strcpy_s(result, sizeof(result), "eleven");break;case 12:strcpy_s(result, sizeof(result), "twelve");break;case 13:strcpy_s(result, sizeof(result), "thirteen");break;case 14:strcpy_s(result, sizeof(result), "fourteen");break;case 15:strcpy_s(result, sizeof(result), "fifteen");break;case 16:strcpy_s(result, sizeof(result), "sixteen");break;case 17:strcpy_s(result, sizeof(result), "seventeen");break;case 18:strcpy_s(result, sizeof(result), "eighteen");break;case 19:strcpy_s(result, sizeof(result), "nineteen");break;}}else {// 处理其他情况switch (tens) {case 2:strcpy_s(result, sizeof(result), "twenty");break;case 3:strcpy_s(result, sizeof(result), "thirty");break;case 4:strcpy_s(result, sizeof(result), "forty");break;case 5:strcpy_s(result, sizeof(result), "fifty");break;case 6:strcpy_s(result, sizeof(result), "sixty");break;case 7:strcpy_s(result, sizeof(result), "seventy");break;case 8:strcpy_s(result, sizeof(result), "eighty");break;case 9:strcpy_s(result, sizeof(result), "ninety");break;}// 如果个位数不为零,追加连字符和个位数的英文单词if (ones != 0) {char temp[10];strcpy_s(temp, sizeof(temp), "-");strcat_s(result, sizeof(result), temp);switch (ones) {case 1:strcat_s(result, sizeof(result), "one");break;case 2:strcat_s(result, sizeof(result), "two");break;case 3:strcat_s(result, sizeof(result), "three");break;case 4:strcat_s(result, sizeof(result), "four");break;case 5:strcat_s(result, sizeof(result), "five");break;case 6:strcat_s(result, sizeof(result), "six");break;case 7:strcat_s(result, sizeof(result), "seven");break;case 8:strcat_s(result, sizeof(result), "eight");break;case 9:strcat_s(result, sizeof(result), "nine");break;}}}// 对于 10 的情况if (number == 10) {strcpy_s(result, sizeof(result), "ten");}// 输出结果printf("You entered the number:%s\n", result);return 0;
}

输出

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​       1acebf2d4d424e9eb4b46744c2bef137.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/457492.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nfs服务部署案例

目录 nfs服务介绍 案例信息 服务端部署 安装服务 启动服务 修改配置文件 重新加载配置文件 创建存储目录 客户端部署 安装服务 挂载nfs目录 测试 nfs服务介绍 nfs是网络文件系统&#xff0c;类似与windows的共享文件&#xff0c;用于存储文件。 nfs依赖于rpc服务才…

【C++】抱C++中的函数式编程:使用`std::function`和Lambda表达式简化代码

C自C11标准引入了lambda表达式、std::function和std::bind&#xff0c;为开发者带来了强大的函数式编程特性。函数式编程让代码更加灵活、简洁、可重用&#xff0c;并使得开发者可以轻松处理回调、事件驱动编程和更复杂的函数组合。本文将详细介绍C中函数式编程的关键工具&…

解码专业术语——应用系统开发项目中的专业词汇解读

文章目录 引言站点设置管理具体要求包括&#xff1a; Footer管理基于URL的权限控制利用数据连接池优化数据库操作什么是数据连接池&#xff1f;优化的优势 利用反射改造后端代码&#xff0c;AJAX反射的作用及其在后端代码中的应用AJAX 实现前后端无刷新交互 引言 创新实践项目二…

Linux常用命令1

切换目录 cd [rootlocalhost menge]# cd /[rootlocalhost /]# cd: cd [-L|[-P [-e]] [-]] [目录] 查看当前的目录 pwd 浏览目录内容 ls ls浏览后颜色表示 白色&#xff1a;普通文件 蓝色&#xff1a;目录 红色&#xff1a;压缩包文件 黄色&#xff1a;设备文件 绿…

Python浪漫之画一个圆月亮

效果图&#xff1a; 完整代码&#xff1a; import turtle import time# 创建一个画布 screen turtle.Screen() screen.bgcolor("darkblue") # 设置背景为深蓝色# 创建一个海龟&#xff08;turtle&#xff09;用于绘制月亮 moon turtle.Turtle() moon.color("…

Axure设置面板状态——元件动作二

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01;因为有事断更了三天&#xff0c;从今天开始又回来了&#xff0c;继续为大家分享Axure相关知识点。 课程主题&#xff1a;设置面板状态 主要内容&#xff1a;State状态、推…

UML 总结(基于《标准建模语言UML教程》)

定义 UML 又称为统一建模语言或标准建模语言&#xff0c;是一种标准的图形化建模语言&#xff0c;它是面向对象分析与设计的一种标准表示。尽管UML 本身没有对过程有任何定义&#xff0c;但UML 对任何使用它的方法&#xff08;或过程&#xff09;提出的要求是&#xff1a;支持用…

springboot入门学习笔记

在我们创建了一个Springboot项目之后&#xff0c;我们会看到有很多文件夹和文件 Springboot程序中各类文件的意义 一.pom.xml 在 Spring Boot 项目中&#xff0c;pom.xml&#xff08;Project Object Model&#xff09;文件是 Maven 构建工具的核心配置文件。起到项目信息定义…

S-Function

目录 S-Function介绍 生成S-Function的三种常用手段 使用手写S-函数合并定制代码 使用S-Function Builder块合并定制代码 使用代码继承工具合并定制代码 S-Function介绍 我们可以使用S-Function扩展Simulink对仿真和代码生成的支持。例如&#xff0c;可以使用它们&#xf…

ELK之路第一步——Elasticsearch集群的搭建以及踩坑记录

elasticSearch集群 前言一、架构二、下载三、虚拟机相关设置3.1 创建es用户3.2 为建es用户赋权sudo3.3 更换es目录所属用户 四、Elasticsearch配置文件修改4.1 修改elasticsearch.yml4.2 修改jvm.options4.3 修改jdk路径 五、启动六、启动报错七、可视化界面cerebro 前言 Elk&…

二进制方式部署k8s集群

目标任务: 1、Kubernetes集群部署架构规划 2、部署Etcd数据库集群 3、在Node节点安装Docker 4、部署Flannel网络插件 5、在Master节点部署组件(api-server,schduler,controller-manager) 6、在Node节点部署组件(kubelet,kube-proxy) 7、查看集群状态 8、运行⼀个测…

【有啥问啥】DINO:一种改进的去噪锚框的端到端目标检测器

DINO&#xff1a;一种改进的去噪锚框的端到端目标检测器 在目标检测领域&#xff0c;DINO&#xff08;DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection&#xff09;是一种创新的端到端目标检测模型&#xff0c;旨在解决传统目标检测算法中的一些关…

基于Multisim的音频放大电路设计与仿真

基本设计要求&#xff1a;设计并仿真实现一个音频功率放大器。功率放大器的电源电压为&#xff0b;5V&#xff08;电路其他部分的电源电压不限&#xff09;&#xff0c;负载为8Ω电阻。具体要求如下&#xff1a;1&#xff09;3dB通频带为300&#xff5e;3400Hz&#xff0c;输出…

AI智能爆发:从自动驾驶到智能家居,科技如何改变我们的日常?

内容概要 在这个瞬息万变的时代&#xff0c;AI智能以其惊人的速度崛起&#xff0c;正在以前所未有的方式改变我们的生活。从自动驾驶到智能家居&#xff0c;这一系列创新为我们的日常生活注入了新的活力和便利。从交通安全到居家体验&#xff0c;这些科技不仅仅是工具&#xf…

【Visual Studio】下载安装 Visual Studio Community 并配置 C++ 桌面开发环境的图文教程

引言 Visual Studio 是一个面向 .NET 和 C 开发人员的综合性 Windows 版 IDE&#xff0c;可用于构建 Web、云、桌面、移动应用、服务和游戏。 安装步骤 访问 Visual Studio 的官方下载页面&#xff1a; https://visualstudio.microsoft.com/zh-hans/downloads/运行已下载的 V…

【数据结构与算法】第4课—数据结构单链表OJ练习题

文章目录 1. 移除链表元素2. 反转链表3. 找链表中间节点4. 合并两个有序的链表5. 分割链表6. 链表的回文结构7. 相交链表8. 判断环形链表9. 返回环形链表的入环节点10. 随机链表的复制 1. 移除链表元素 题目 思路 #include <stdio.h> #include <stdlib.h> #include…

【功能安全】技术安全概念TSC

目录 01 TSC定义 02 TSC注意事项 03 TSC案例 01 TSC定义 所处位置 TSC:Technical safety concept技术安全概念 TSR:Technical safety requirement技术安全需求 在系统开发阶段属于安全活动4-6 系统层产品开发示例 TSC目的

传输层UDP

再谈端口号 端口号&#xff1a;标识了主机上进行通信的不同的应用程序 在TCP/IP 协议中我们用“源IP”"源端口号" “目的IP”“目的端口号” “协议号”五元组来标识一个通信 用netstat -n 查看 查看网络信息&#xff0c;我们有两种命令查看网络通信1.用netsta…

力扣刷题(sql)--零散知识点(1)

通过一段时间的刷题&#xff0c;感觉自己的sql能力逐渐上去&#xff0c;所以不会像前三道题一样讲那么详细了&#xff0c;这里主要会讲到一些特殊的知识点和方法。另外&#xff0c;我的建议是做完一个题有好的想法赶紧记录下来&#xff0c;不要想着最后汇总&#xff0c;不然会懒…

通过cv库智能切片 把不同的分镜切出来 自媒体抖音快手混剪

用 手机自动化脚本&#xff0c;从自媒体上获取视频&#xff0c;一个商品对应几百个视频&#xff0c;我们把这几百个视频下载下来&#xff0c;进行分镜 视频切片&#xff0c;从自媒体上下载视频&#xff0c;通过cv库用直方图识别每个镜头进行切片。 下载多个图片进行视频的伪原…