C语言实例_26之根据输入计算星期几

news2025/1/11 11:14:30

1. 问题

请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

2. 实现思路

  • 思路一:嵌套if-else语句实现
    • 首先接收用户输入的第一个字母,使用if-else语句进行判断。如果输入的是M,则直接判断为星期一(Monday);如果是T,由于星期二(Tuesday)和星期四(Thursday)首字母都是T,所以需要再次提示用户输入第二个字母,根据第二个字母进一步判断是星期二还是星期四,比如第二个字母是u则为星期二,是h则为星期四;同理,若输入的是W,则为星期三(Wednesday),若输入的是F,则为星期五(Friday),若输入的是S,因为星期六(Saturday)和星期日(Sunday)首字母都是S,同样需要再输入第二个字母来区分,比如第二个字母是a则为星期六,是u则为星期日。
  • 思路二:switch语句结合if语句实现
    • 先接收用户输入的第一个字母,用switch语句对其进行分类判断。当输入的字母为MWF时,可以直接确定对应的星期几。而对于输入TS的情况,由于存在两种可能的星期与之对应,所以在相应的case分支里,再提示用户输入第二个字母,然后通过if语句根据第二个字母来准确判断到底是哪个具体的星期。

3. 实例代码

实现方式一:嵌套if-else语句实现

#include <stdio.h>
#include <ctype.h>

int main() {
    char firstLetter;
    char secondLetter;
    printf("请输入星期几的第一个字母(大写):");
    scanf(" %c", &firstLetter);
    firstLetter = toupper(firstLetter);

    if (firstLetter == 'M') {
        printf("是星期一(Monday)。\n");
    } else if (firstLetter == 'T') {
        printf("请输入第二个字母(大写):");
        scanf(" %c", &secondLetter);
        secondLetter = toupper(secondLetter);
        if (secondLetter == 'U') {
            printf("是星期二(Tuesday)。\n");
        } else if (secondLetter == 'H') {
            printf("是星期四(Thursday)。\n");
        } else {
            printf("输入的字母不符合要求。\n");
        }
    } else if (firstLetter == 'W') {
        printf("是星期三(Wednesday)。\n");
    } else if (firstLetter == 'F') {
        printf("是星期五(Friday)。\n");
    } else if (firstLetter == 'S') {
        printf("请输入第二个字母(大写):");
        scanf(" %c", &secondLetter);
        secondLetter = toupper(secondLetter);
        if (secondLetter == 'A') {
            printf("是星期六(Saturday)。\n");
        } else if (secondLetter == 'U') {
            printf("是星期日(Sunday)。\n");
        } else {
            printf("输入的字母不符合要求。\n");
        }
    } else {
        printf("输入的字母不符合要求。\n");
    }

    return 0;
}

实现方式二:switch语句结合if语句实现

#include <stdio.h>
#include <ctype.h>

int main() {
    char firstLetter;
    char secondLetter;
    printf("请输入星期几的第一个字母(大写):");
    scanf(" %c", &firstLetter);
    firstLetter = toupper(firstLetter);

    switch (firstLetter) {
    case 'M':
        printf("是星期一(Monday)。\n");
        break;
    case 'T':
        printf("请输入第二个字母(大写):");
        scanf(" %c", &secondLetter);
        secondLetter = toupper(secondLetter);
        if (secondLetter == 'U') {
            printf("是星期二(Tuesday)。\n");
        } else if (secondLetter == 'H') {
            printf("是星期四(Thursday)。\n");
        } else {
            printf("输入的字母不符合要求。\n");
        }
        break;
    case 'W':
        printf("是星期三(Wednesday)。\n");
        break;
    case 'F':
        printf("是星期五(Friday)。\n");
        break;
    case 'S':
        printf("请输入第二个字母(大写):");
        scanf(" %c", &secondLetter);
        secondLetter = toupper(secondLetter);
        if (secondLetter == 'A') {
            printf("是星期六(Saturday)。\n");
        } else if (secondLetter == 'U') {
            printf("是星期日(Sunday)。\n");
        } else {
            printf("输入的字母不符合要求。\n");
        }
        break;
    default:
        printf("输入的字母不符合要求。\n");
    }

    return 0;
}

4. 输出结果

image.png
image.png
image.png

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

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

相关文章

ceph安装P版本

文章目录 1、搭建的要求1、OSD约束2、ceph部署方式1、cephadm的部署原理红帽版本搭建(RHCS5.0部署) 2、cephadm安装P版本1、环境要求2、配置主机名&#xff0c;关闭防火墙&#xff0c;时间同步3、检查python环境和容器运行时环境4、部署引导节点(下载cephadm脚本)1、获取脚本2、…

git 使用配置

新拿到机器想配置git 获取代码权限&#xff0c;需要的配置方法 1. git 配置用户名和邮箱 git config --global user.name xxxgit config --global user.email xxemail.com 2. 生成ssh key ssh-keygen -t rsa -C "xxemail.com" 3. 获取ssh key cat ~/.ssh/id_rsa.…

Python使用Selenium自动实现表单填写之蛇年纪念币蛇钞预约(附源码,源码有注释解析,已测试可用

Python实现纪念币预约自动填写表单 声明:本文只做技术交流,不可用代码为商业用途,文末有源码下载,已测试可用。 Part 1 配置文件改写(源码 有详细的注释说明 读取配置文件,自己组数据库,录入信息 配置文件 Part 2 主函数 每一期的xpath路径都不一样 所以需要提前去网站…

Hyper-V创建虚拟机配置IP等网络配置原理(Linux、Windows为例)

Hyper-V创建虚拟机配置IP等网络配置原理&#xff08;Linux、Windows为例&#xff09; 大家知道Windows系统里面内置了Hyper-V管理器&#xff0c;用来创建和管理本地虚拟机环境。今天我创建了两台虚拟机&#xff0c;一台是CentOS7.9&#xff08;Linux&#xff09;&#xff0c;另…

Angular由一个bug说起之十一:排序之后无法展开 Row

问题现象 在使用 Material Table 时&#xff0c;排序功能触发了一个奇怪的 Bug&#xff1a;表格的 Row 无法展开。最终排查发现&#xff0c;问题的根源在于 trackBy 的错误使用。trackBy 方法接受两个参数&#xff1a;index&#xff08;数据索引&#xff09;和 row&#xff08;…

Miller-Rabin 米勒拉宾素性检测

1、什么是Miller-Rabin Miller - Rabin 算法是一种用于判断一个数是否为素数的概率性算法。在密码学等领域&#xff0c;经常需要快速判断一个大整数是否为素数。传统的试除法对于大整数效率极低&#xff0c;而 Miller - Rabin 算法能够在较短时间内以较高的概率判断一个数是否…

【MySQL系列】MySQL 中的 SQL_MODE 设置:ANSI_QUOTES 选项解析与应用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

HarmonyOS 5.0应用开发——Ability与Page数据传递

【高心星出品】 文章目录 Ability与Page数据传递Page向Ability传递数据Ability向Page传递数据 Ability与Page数据传递 基于当前的应用模型&#xff0c;可以通过以下几种方式来实现UIAbility组件与UI之间的数据同步。 使用EventHub进行数据通信&#xff1a;在基类Context中提供…

MFC扩展库BCGControlBar Pro v36.0新版亮点:黑色主题中的自动反转图标

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v36.0已全新发布了&#xff0c;这个版本在黑暗主题中添加自动图标反转、新增一个全新的S…

查找 排序算法(系列)

复习一下排序算法吧&#xff0c;数据结构有点难&#xff0c;虽然我已经看过一遍了&#xff0c;重温一遍还是很有收获&#xff01; 本文会出一系列&#xff08;主讲算法排序&#xff09;&#xff0c;欢迎订阅&#xff01;&#xff01;&#xff01; Python中常用的排序算法有以…

Y20030053 JSP+SSM+MYSQL+LW+旅游系统的设计与实现 源码 配置 文档 全套资料

旅游系统的设计与实现 1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取 1.摘要 摘 要 随着旅游业的蓬勃发展和人们对休闲度假需求的不断增加&#xff0c;旅游业管理面临着越来越多的挑战。为了提高管理效率、优化客户体验并增强市场竞争力&#xff0c;本文介绍…

3D 生成重建016-SA3D从nerf中分割一切

3D 生成重建016-SA3D从nerf中分割一切 文章目录 0 论文工作1 方法介绍2 实验结果 0 论文工作 1 SAM的背景和目标&#xff1a; SAM 是一种强大的二维视觉基础模型&#xff0c;能够在 2D 图像中进行任意物体的分割。传统上&#xff0c;SAM 在二维空间表现出色&#xff0c;但其无…

Leetcode—374. 猜数字大小【简单】

2024每日刷题&#xff08;202&#xff09; Leetcode—374. 猜数字大小 C实现代码 /** * Forward declaration of guess API.* param num your guess* return -1 if num is higher than the picked number* 1 if num is lower than the picked number* …

数字孪生与大型模型强强联合,共塑工业制造崭新前景

随着新一代信息技术与实体经济的加速融合&#xff0c;工业领域的数字化、智能化转型趋势愈发显著&#xff0c;孕育出一系列制造业数字化转型的新模式与新业态。在此背景下&#xff0c;数字孪生技术作为关键支撑力量&#xff0c;正在全球范围内迅速崛起并得到广泛应用&#xff0…

vue+mars3d点击图层展示炫酷的popup弹窗

展示效果 目录 一&#xff1a;叠加数据图层到地图上&#xff0c;此时需要使用bindPopup绑定popup 二、封装自定义的popup&#xff0c;样式可以自行调整 一&#xff1a;叠加数据图层到地图上&#xff0c;此时需要使用bindPopup绑定popup 这里我根据数据不同&#xff0c;展示的…

springboot利用easypoi实现简单导出Excel

vue springboot利用easypoi实现简单导出 前言一、easypoi是什么&#xff1f;二、使用步骤 1.传送门2.前端vue3.后端springboot 3.1编写实体类&#xff08;我这里是dto,也一样&#xff09;3.2控制层结尾 前言 今天玩了一下springboot利用easypoi实现excel的导出&#xff0c;以前…

Milvus attu - docker 使用 及 版本兼容

文章目录 版本查看attu 和 milvus 的兼容性Docker 加载attu docker 合并到 Milvus文件管理使用 docker compose 挂在 Milvus,登录 attu 出现报错: Error: Failed to connect to Milvus: Error: 1 CANCELLED: Call cancelled 于是检查兼容问题 版本查看 Milvus 版本发布: htt…

洛谷 P1957 口算练习题 C语言

题目&#xff1a; https://www.luogu.com.cn/problem/P1957 题目描述 王老师正在教简单算术运算。细心的王老师收集了 ii 道学生经常做错的口算题&#xff0c;并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情&#xff0c;为此他想用计算机程序来提高工作效率。王老…

el-select 修改样式

这样漂亮的页面&#xff0c;搭配的却是一个白色风格的下拉框 &#xff0c;这也过于刺眼。。。 调整后样式为&#xff1a; 灯红酒绿总有人看着眼杂&#xff0c;但将风格统一终究是上上选择。下面来处理这个问题。 分为两部分。 第一部分&#xff1a;是修改触发框的样式 第二部…

Proteus中添加新元件库

手上村&#xff1a;本来打算在Proteus中设计充电电路&#xff0c;发现软件自带的元器件库中没有我想要充电芯片。因此&#xff0c;看了其他大神的导入新的元器件步骤&#xff0c;建立自己的元器件库&#xff01;自己也来记录一波&#xff01;话不多说&#xff0c;赶紧上菜&…