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

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【项目实战】HuggingFace教程,初步实战,使用HF做一些小型任务

Huggingface教程 一、前期准备工作二、学习pipline2.1.试运行代码&#xff0c;使用HuggingFace下载模型2.2. 例子1&#xff0c;情感检测分析(只有积极和消极两个状态)2.3. 例子2&#xff0c;文本生成 三、学会使用Tokenizer & Model3.1.tokenizer&#xff08;分词器&#x…

Lampiao靶机入侵实战

07-Lampiao靶机入侵实战 一、扫描采集信息 1、获取IP地址 nmap -sn 192.168.81.0/24获得IP地址为&#xff1a;192.168.81.1282、获取端口信息 由于nmap默认情况下只扫描常用的1000个端口&#xff0c;覆盖面并不全&#xff0c;所以建议全端口扫描 nmap -p 1-65535 192.168.…

JSON格式及jackson.jar包的安装与配置

目录 为什么会出现JSON? JSON格式 jackson的jar文件下载与配置 jackson的简单使用 读取json格式 将现有对象转换成json序列 为什么会出现JSON? 在JSON出现前&#xff0c;由于多种编程语言的语法细节都不是完全相同&#xff0c;在网络传输信息时无法使用同一的格式&…

高效集成:YS采购订单与帆软MongoDB的对接实践

高效集成&#xff1a;YS采购订单与帆软MongoDB的对接实践 YS采购订单对接帆软MongoDB&#xff1a;用友BIP数据集成案例分享 在企业信息化系统中&#xff0c;数据的高效流动和处理是实现业务智能化的关键。本文将聚焦于一个具体的系统对接集成案例——YS采购订单对接帆软MongoD…

sqli-labs靶场安装以及刷题记录-docker

sqli-labs靶场安装以及刷题记录-docker sqli-labs靶场安装-dockersqli-labs靶场刷题less-1 单引号less-2 数字型less-3 单引号括号less-4 双引号括号less-5 单引号布尔盲注less-6 双引号布尔盲注less-7 单引号加括号、输出到文件less-8 单引号布尔盲注less-9 单引号时间盲注les…

Ollama+Open WebUI,windows部署一个本地AI

在Ollama官网下载&#xff0c;点击DownLoad 下载完之后进行安装&#xff0c;配置环境变量&#xff0c;完成后打开CMD命令行工具测试 运行并下载模型 之后选择Open WebUI作为图形化界面 &#x1f680; Getting Started | Open WebUI 运行Docker命令 docker run -d -p 3000:80…

ArcGIS002:软件自定义设置

摘要&#xff1a;本文详细介绍安装arcgis10.2后软件自定义设置内容&#xff0c;包括工具条的启用、扩展模块的启用、如何加载项管理器、快捷键设置、样式管理器的使用以及软件常规设置。 一、工具条的启用 依次点击菜单栏【自定义】->【工具条】&#xff0c;根据工作需求勾…

07 设计模式-结构型模式-桥接模式

桥接&#xff08;Bridge&#xff09;是用于把抽象化与实现化解耦&#xff0c;使得二者可以独立变化。这种类型的设计模式属于结构型模式&#xff0c;它通过提供抽象化和实现化之间的桥接结构&#xff0c;来实现二者的解耦。 这种模式涉及到一个作为桥接的接口&#xff0c;使得…

背包九讲——二维费用背包问题

目录 二维费用背包问题 问题描述&#xff1a; 解决方法&#xff1a; 方法一&#xff1a; 代码实现&#xff1a; 方法二&#xff1a; 代码实现&#xff1a; 背包问题第五讲——二维费用背包问题 背包问题是一类经典的组合优化问题&#xff0c;通常涉及在限定容量的背包中…

gateway 整合 spring security oauth2

微服务分布式认证授权方案 在分布式授权系统中&#xff0c;授权服务要独立成一个模块做统一授权&#xff0c;无论客户端是浏览器&#xff0c;app或者第三方&#xff0c;都会在授权服务中获取权限&#xff0c;并通过网关访问资源 OAuth2的四种授权模式 授权码模式 授权服务器将授…

CentOS 7镜像下载

新版本系统镜像下载&#xff08;当前最新是CentOS 7.4版本&#xff09; CentOS官网 官网地址 http://isoredirect.centos.org/centos/7.4.1708/isos/x86_64/ http://mirror.centos.org/centos/7/isos/ 国内的华为云&#xff0c;超级快&#xff1a;https://mirrors.huaweiclou…

Linux TCP CC状态机

万字详文&#xff1a;TCP 拥塞控制详解 - 知乎bcc/tools/tcpcong.py at master iovisor/bccbcc/tools/tcpcong_example.txt at master iovisor/bcc 1.状态机 2.tcp map

认识类与对象(上)

目录 何为类&#xff0c;何为对象? 一.对于类 1.idea修改文件类名 二.对于对象 三.this关键字 1.区分成员变量和局部变量 2.引用当前对象 3.调用当前对象的其他构造方法 4.总结 四.构造方法 1.利用idea特性快速写出构造方法 五.封装 1.利用idea特性快速写出set和…

鸿蒙网络编程系列32-基于拦截器的性能监控示例

1. 拦截器简介 在Web开发中拦截器是一种非常有用的模式&#xff0c;它允许开发者在请求发送到服务器之前或响应返回给客户端之前执行一些预处理或后处理操作。这种机制特别适用于需要对所有网络请求或响应进行统一处理的情况&#xff0c;比如添加全局错误处理、请求头的修改、…

【深度学习】【OpenVINO】【C++】模型转化、环境搭建以及模型部署的详细教程

【深度学习】【OpenVINO】【C】模型转化、环境搭建以及模型部署的详细教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【OpenVINO】【C】模型转化、环境搭建以及模型部署的详细教程前言模型转换--pytorch转onnxWindows平台搭建…

我们可以用微服务创建状态机吗?

大家好&#xff0c;我是锋哥。今天分享关于【我们可以用微服务创建状态机吗&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 我们可以用微服务创建状态机吗&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 是的&#xff0c;微服务架构可…

为什么选择 Spring data hadoop

&#x1f449; 请点赞支持这款 全新设计的脚手架 &#xff0c;让 Java 再次伟大&#xff01; spring-data-hadoop hbase 常见的操作方式有以下三种&#xff1a; Native Api 原生 api 操作繁琐&#xff0c;就像用 JDBC 操作关系型数据库一样&#xff0c;类似 flush、submit、…

Windows系统启动MongoDB报错无法连接服务器

文章目录 发现问题解决办法 发现问题 1&#xff09;、先是发现执行 mongo 命令&#xff0c;启动报错&#xff1a; error: MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017&#xff1b; 2&#xff09;、再检查 MongoDB 进程 tasklist | findstr mongo 发现没有进程&a…

【最全基础知识2】机器视觉系统硬件组成之工业相机镜头篇--51camera

机器视觉系统中,工业镜头作为必备的器件之一,须和工业相机搭配。工业镜头是机器视觉系统中不可或缺的重要组成部分,其质量和性能直接影响到整个系统的成像质量和检测精度。 目录 一、基本功能和作用 二、分类 1、按成像方式分 2、按焦距分 3、按接口类型分 4、按应用…

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

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