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

news2024/10/27 15:34:55

第七题

                        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.coloradmin.cn/o/2224763.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux安装部署数据库:MongoDB

Linux安装部署数据库&#xff1a;MongoDB 一、虚拟机环境说明1、安装前准备2、数据库软件3、数据库工具 二、源码安装 MongoDB1、安装配置环境2、服务启动方式3、设置开机自启 三、管理使用 MongoDB1、登录使用2、常用命令 四、安全优化 MongoDB1、创建普通用户启动服务2、编写…

机器学习 - 树结构1 - 随机森林

算法原理 随机森林由多个决策树构成&#xff0c;每棵树在训练时使用随机选择的样本和特征子集。在分类任务中&#xff0c;每棵树对新的输入样本进行分类&#xff0c;最终的分类结果由多数树的分类结果决定。这种方法可以提高预测的准确性&#xff0c;并且通过平均或投票机制减少…

【C++】动态库动态加载实例详解

动态库动态加载&#xff1a;LoadLibrary与函数地址获取详解 一、概述三、加载失败的原因及解决方案DLL文件不存在或路径不正确&#xff1a;依赖的其他DLL未找到&#xff1a;权限问题&#xff1a;DLL版本不兼容&#xff1a; 四、总结 在软件开发中&#xff0c;模块化设计是一种非…

基于Spring Boot的学生宿舍信息资源整合

3系统分析 3.1可行性分析 通过对本学生宿舍信息管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本学生宿舍信息管理系统采用Spring Boot框架&#xff0…

【C++笔记】内存管理

前言 各位读者朋友们大家好&#xff0c;上期我们讲了类和对象下的内容&#xff0c;类和对象整体的内容我们就讲完了&#xff0c;接下来我们开启新的部分内存管理的讲解。 目录 前言一. C/C内存分布二. C语言中内存管理的方式三. C内存管理方式3.1 new/delete操作内置类型3.2…

时间序列预测(九)——门控循环单元网络(GRU)

目录 一、GRU结构 二、GRU核心思想 1、更新门&#xff08;Update Gate&#xff09;&#xff1a;决定了当前时刻隐藏状态中旧状态和新候选状态的混合比例。 2、重置门&#xff08;Reset Gate&#xff09;&#xff1a;用于控制前一时刻隐藏状态对当前候选隐藏状态的影响程度。…

idea 无法输入中文 快速解决

idea在某些情况会出现无法输入中文的情况&#xff0c;我们不去深究内部原因&#xff0c;直接上解决方案&#xff1a; 1、点击菜单help->Edit Custom VM Options 2、最后一行&#xff0c;追加&#xff1a; -Drecreate.x11.input.methodtrue 、 3、重启

计算机毕业设计Java连锁超市销售与分析系统 销售数据管理 超市运营分析 数据可视化 (源码+定制+开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

10月27日

取P为A 秩1矩阵只有1个特征值为正&#xff0c;其余为1

YOLO11 目标检测 | 自动标注 | 预标注 | 标签格式转换 | 手动校正标签

本文分享使用YOLO11进行目标检测时&#xff0c;实现模型推理预标注、自动标注、标签格式转换、以及使用Labelme手动校正标签等功能。 目录 1、预训练权重 2、生成预标注 3、分析YOLO11的目标检测格式 4、分析Labelme标注工具的格式 5、生成json标注文件 6、手动校正标签 …

#渗透测试#SRC漏洞挖掘# 信息收集-Shodan进阶VNC

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…

PHPOK 4.8.338 后台任意文件上传漏洞(CVE-2018-12941)复现

PHPOK企业站(简称PHPOK&#xff09;建设系统是一套基于PHP和MySQL构建的高效企业网站建设方案之一&#xff0c;全面针对企业网&#xff08;以展示为中心&#xff09;进行合理的设计规划。 PHPOK是一套开源免费的建站系统&#xff0c;可以在遵守LGPL协议的基础上免费使用。系统具…

trueNas 24.10 docker配置文件daemon.json无法修改(重启被覆盖)解决方案

前言 最近听说truenas的24.10版本开放docker容器解决方案放弃了原来难用的k3s&#xff0c;感觉非常巴适&#xff0c;就研究了一下&#xff0c;首先遇到无法迁移老系统应用问题比较好解决&#xff0c;使用sudo登录ssh临时修改daemon.json重启docker后进行docker start 容器即可…

腾讯云视频文件上传云存储时自动将mp4格式转码成m3u8

针对问题&#xff1a; 弱网环境下或手机网络播放mp4格式视频卡顿。 存储环境&#xff1a;腾讯云对象存储。 处理流程&#xff1a; 1&#xff1a;登录腾讯云控制台&#xff0c;进入对象存储服务&#xff0c;找到对应的存储桶&#xff0c;点击进入。 在任务与工作流选项卡中找…

Linux复习-C++

参考博客&#xff1a; https://blog.csdn.net/qq_45254369/article/details/126023482?ops_request_misc%257B%2522request%255Fid%2522%253A%252277629891-A0F3-4EFC-B1AC-410093596085%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&req…

深入探索:AI模型在各行业的实际应用

深入探索&#xff1a;AI模型在各行业的实际应用 前言一、卷积神经网络&#xff08;CNN&#xff09;图像分类 二、循环神经网络&#xff08;RNN&#xff09;及其变体&#xff08;LSTM、GRU&#xff09;自然语言处理&#xff08;NLP&#xff09; 三、基于Transformer架构的模型&a…

基于树型结构实现顺序结构堆

目录 前言 一、树 1、树的概念与结构 2、树的相关术语 3、二叉树 4、满二叉树 ​ 5、完全二叉树 ​ 6、二叉树的存储 1、顺序结构 2、链式结构 二、堆 1、堆的结构 2、堆的初始化 3、入堆&#xff08;大根堆&#xff09; 4、出堆&#xff08;大根堆&#xf…

C++网络编程之C/S模型

C网络编程之C/S模型 引言 在网络编程中&#xff0c;C/S&#xff08;Client/Server&#xff0c;客户端/服务器&#xff09;模型是一种最基本且广泛应用的架构模式。这种模型将应用程序分为两个部分&#xff1a;服务器&#xff08;Server&#xff09;和客户端&#xff08;Clien…

Java审计对比工具JaVers使用

最近有个需求&#xff0c;需要将页面的内容生成excel或者word文档&#xff0c;而且每次的修改都需要生成新的版本&#xff0c;同时需要记录每次修改变化的内容。我们会把每次的修改的内容提交赋值给一个java对象&#xff0c;同时存储到数据库一条新数据&#xff0c;对应数据表一…

uniapp圆形波浪进度效果

uniapp圆形波浪进度效果 背景实现思路代码实现尾巴 背景 最近项目中有些统计的地方需要用到圆形的波浪进度效果&#xff0c;要求是根据百分比值然后在一个圆形内动态的展示一个波浪形的进度&#xff0c;看参考一下效果。 实现思路 这个效果看着挺复杂的&#xff0c;那么我们…