【王道训练营】第3题 判断某个年份是不是闰年,如果是闰年,请输出“yes”,否则请输出“no”

news2024/11/22 6:19:05

在这里插入图片描述

文章目录

    • 引言
    • 闰年
    • 初始代码
    • 代码改进
      • 改进1:添加提示信息
      • 改进2:代码格式
      • 改进3:变量命名
    • 其他实现方式
      • 使用if-else语句
      • 使用函数
      • 使用三元操作符
    • 结论

引言

在公历中,闰年的规则如下:如果某个年份能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年。让我们看看如何将这个规则转化为C语言代码。

Description 判断某个年份是不是闰年,如果是闰年,请输出“yes”,否则请输出“no”
Input 输入一行,只有一个整数x(0<=x <=10000)
Output 输出只有一行字符

闰年

两者是或(||)的关系---->普通闰年||世纪闰年

普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。

初始代码

我们首先看一下一个基本的实现。这段代码接收一个整数输入,然后根据闰年的规则进行判断。

#include<stdio.h>

int main(){
  
  int a;
  scanf("%d",&a);
  
  if(a%4==0 && a%100!=0 ){
   	printf("yes");
   }
   else if(a%400 == 0)
   {
   printf("yes");
   }
   else
   {
   printf("no");   
   }
  return 0;
}

这段代码能够正确地判断一个年份是否为闰年。首先,它检查年份是否能被4整除且不能被100整除,如果这个条件满足,则输出"yes",表示这是一个闰年。如果第一个条件不满足,代码会检查年份是否能被400整除,如果满足,则输出"yes",表示这是一个闰年。如果以上两个条件都不满足,那么就输出"no",表示这不是一个闰年。

代码改进

虽然上述代码可以正确地判断闰年,但我们还可以做一些改进来提高代码的可读性和用户友好性。

改进1:添加提示信息

在调用scanf函数之前,添加一条提示信息,告诉用户需要输入一个年份。这可以提高程序的用户友好性。

改进2:代码格式

保持代码的整洁和一致性。例如,你可以在每个操作符(如%==)的两边都添加一个空格,以提高代码的可读性。

改进3:变量命名

尽量使用有意义的变量名,而不是简单的字母,这可以提高代码的可读性和可维护性。

下面是改进后的代码:

#include<stdio.h>

int main(){
  
  int year;
  printf("Enter a year: ");
  scanf("%d", &year);
  
  if(year % 4 == 0 && year % 100 != 0){
    printf("yes");
  }
  else if(year % 400 == 0){
    printf("yes");
  }
  else{
    printf("no");   
  }
  
  return 0;
}

其他实现方式

除了上述的基本实现和改进,我们还可以有其他的实现方式,如使用函数或三元操作符。

使用if-else语句

#include <stdio.h>

int main() {
    int year;
    printf("Enter a year: ");
    scanf("%d", &year);

    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
        printf("yes\n");
    else
        printf("no\n");

    return 0;
}

假设用户输入年份为 2024

输出:

Enter a year: 2024
yes

使用函数

#include <stdio.h>

int isLeapYear(int year) {
    return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}

int main() {
    int year;
    printf("Enter a year: ");
    scanf("%d", &year);

    if (isLeapYear(year))
        printf("yes\n");
    else
        printf("no\n");

    return 0;
}

假设用户输入年份为 2024

输出:

Enter a year: 2024
yes

使用三元操作符

#include <stdio.h>

int main() {
    int year;
    printf("Enter a year: ");
    scanf("%d", &year);

    printf("%s\n", ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? "yes" : "no");

    return 0;
}

假设用户输入年份为 2024

输出:

Enter a year: 2024
yes

这里的输出结果取决于用户输入的年份。根据闰年的定义,如果年份能被4整除但不能被100整除,或者能被400整除,那么这一年就是闰年。根据用户输入的年份,程序会判断该年份是否为闰年,并输出相应的结果。

结论

以上就是我们用C语言判断闰年的几种方法。虽然这只是一个简单的程序,但它涵盖了许多编程的基本概念,如条件判断、函数和三元操作符等。希望这篇文章能帮助你更好地理解这些概念,并应用到你的编程实践中。

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

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

相关文章

Prometheus +Grafana +node_exporter可视化监控Linux虚机

1、介绍 待补充 2、架构图 待补充 Prometheus &#xff1a;主要是负责存储、抓取、聚合、查询方面。 node_exporter &#xff1a;主要是负责采集物理机、中间件的信息。 3、搭建过程 配置要求&#xff1a;1台主服务器 n台从服务器 &#xff08;被监控的linux虚机&am…

洛谷_P3817 小A的糖果_python写法

P3817 小A的糖果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一开始有两个案例无法通过&#xff0c;然后看了一下测试案例发现其实是没有考虑到为0这个情况&#xff0c;因为如果为0那么无法吃掉任何一粒糖果&#xff0c;而按照之前的写法是到负数了&#xff0c;那后面的一个…

文献速递:基于SAM的医学图像分割---在医学图像中进行任何分割

Title 题目 Segment anything in medical images 在医学图像中进行任何分割 01 文献速递介绍 医学图像分割是临床实践中的关键组成部分&#xff0c;它促进了准确的诊断、治疗计划和疾病监测。 然而&#xff0c;现有的方法通常是针对特定的模态或疾病类型定制的&#xff0c…

穿越迷茫,寻找心中的灯塔

在人生的旅途中&#xff0c;我们有时会陷入一片迷茫的迷雾之中&#xff0c;不知道前方的路该如何走&#xff0c;每天似乎都在忙碌&#xff0c;却又感觉自己在假努力&#xff0c;仿佛一切都没有意义&#xff0c;没有目标。然而&#xff0c;正是这样的时刻&#xff0c;我们更需要…

16、OpenFeign和Sentinel集成实现fallback服务降级

注&#xff1a;本篇文章主要参考周阳老师讲解的cloud进行整理的&#xff01; 1、需求说明 cloudalibaba-consumer-nacos-order83 通过OpenFeign调用 cloudalibaba-provider-payment9001 1、 83 通过OpenFeign调用 9001微服务&#xff0c;正常访问OK 2、 83 通过OpenFeign调用 …

zabbix监控vmware esxi

一、zabbix服务端配置 修改zabbix_server.conf配置文件 vim /etc/zabbix/zabbix_server.conf #######zabbix_server.conf底部第二行开始添加下面配置######## StartVMwareCollectors5 #StartVMwareCollectors - 预先启动Vmware collector收集器实例的数量。此值取决于要监控的…

阿里云CentOS7安装Hadoop3伪分布式

ECS准备 开通阿里云ECS 略 控制台设置密码 连接ECS 远程连接工具连接阿里云ECS实例&#xff0c;这里远程连接工具使用xshell 根据提示接受密钥 根据提示写用户名和密码 用户名&#xff1a;root 密码&#xff1a;在控制台设置的密码 修改主机名 将主机名从localhost改为需要…

react+vite+antD+reduce+echarts项目完整记录

reactviteantDreduceecharts项目完整记录 之前写前端项目&#xff0c;都是用的vue&#xff0c;从最开始的vue2到后来的vue3&#xff0c;断断续续写了3年&#xff0c;打包工具也从webpack转到了vite&#xff0c;全局数据管理工具从vuex转到了pinia。总体而言&#xff0c;vue3对…

msvcp100.dll是什么东西?电脑msvcp100.dll丢失的六种解决方法

最近&#xff0c;我在电脑上打开一款软件时&#xff0c;遇到了一个问题&#xff1a;找不到msvcp100.dll丢失问题&#xff0c;为了解决这个问题&#xff0c;我进行了深入的学习和研究&#xff0c;并在此分享msvcp100.dll丢失的解决方法。 一&#xff0c;msvcp100.dll是什么&…

机器学习:探索数据中的模式与智能

文章目录 导言介绍&#xff1a;机器学习的定义和重要性发展历程&#xff1a;从概念到现实应用 基础概念机器学习的基本原理监督学习、无监督学习和强化学习的区别与应用1.监督学习2.无监督学习3.强化学习 常见的机器学习任务和应用领域 结语 导言 当代科技领域中最为引人注目的…

HCIP的学习(6)

OSPF—开放式最短路径优先协议 动态路由的评判标准 1、占用资源 2、收敛速度 3、选路动态路由分类&#xff1a; IGP---内部网关协议DV型---距离矢量型---RIPLS型---链路状态型---OSPFEGP---外部网关协议OSPF---无类别的路由协议&#xff08;携带真实掩码&#xff09;组播224.0…

【C++初阶】之类和对象(下)

【C初阶】之类和对象&#xff08;下&#xff09; ✍ 再谈构造函数&#x1f3c4; 初始化列表的引入&#x1f498; 初始化列表的语法&#x1f498; 初始化列表初始化元素的顺序 &#x1f3c4; explicit关键字 ✍ Static成员&#x1f3c4; C语言中的静态变量&#x1f3c4; C中的静…

Python入门练习 - 学生管理系统

Python 实现读书管理系统 """ 实现一个命令行版的读书管理系统 """ import os.path import sys# 使用这个全局变量&#xff0c;来管理所有的学生信息 # 这个列表的每个元素都是一个‘字典’&#xff0c;每 个 字典就分别表示了一个同学students …

STM32硬件I2C通信外设

文章目录 前言I2C硬件介绍10 位地址模式硬件I2C的引脚定义I2C框图主机发送序列图主机接收序列图 硬件I2C读写MPU6050总结 前言 本文主要介绍stm32自带的I2C通信外设&#xff0c;对比与软件模拟I2C&#xff0c;硬件I2C可以自动生成时序&#xff0c;时序的操作更加及时规范&…

【面试经典150 | 动态规划】三角形最小路径和

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;动态规划 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等内容进行…

7、鸿蒙学习-共享包概述

HarmonyOS提供了两种共享包&#xff0c;HAR&#xff08;Harmony Archive&#xff09;静态共享包&#xff0c;和HSP&#xff08;Harmony Shared Package&#xff09;动态共享包。 HAR与HSR都是为了实现代码和资源的共享&#xff0c;都可以包含代码、C库、资源和配置文件&#xf…

UI设计案例,B端后台界面设计教程

B端产品是为“组织”提供服务&#xff0c;以业务为中心&#xff0c;追求时效性&#xff0c;在视觉上&#xff0c;内容为王&#xff0c;视觉为功能让步&#xff0c;追求简洁、清晰、克制、理性的视觉风格。B 端产品业务比较复杂&#xff0c;页面内容也会较多&#xff0c;B端界面…

亲历中国智驾大战,吴新宙加入NVIDIA半年后首秀

‍作者 |张祥威 编辑 |德新 吴新宙近日现身NVIDIA GTC&#xff0c;这是其从小鹏汽车离开加入NVIDIA之后的首次公开亮相。 吴目前担任NVIDIA汽车事业部副总裁&#xff0c;全面负责NVIDIA的车载计算产品线DRIVE平台的产品定义以及工程落地工作。吴新宙最广为人知的经历&#xf…

ES学习日记(三)-------第三方插件选择

前言 在学习和使用Elasticsearch的过程中&#xff0c;必不可少需要通过一些工具查看es的运行状态以及数据。如果都是通过rest请求&#xff0c;未免太过麻烦&#xff0c;而且也不够人性化。 目前我了解的比较主流的插件就三个,head,cerebor和elasticHD 1.head 老牌插件,功能…

聊聊低代码产品的应用场景

随着数字化转型的不断深入&#xff0c;企业对于快速开发和迭代软件应用的需求也越来越迫切。而在这样的背景下&#xff0c;低代码产品应运而生&#xff0c;成为了一种热门的技术解决方案。本文将解读低代码产品的定义并探讨其应用场景。 一、低代码产品的定义 低代码产品是一种…