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

在这里插入图片描述

文章目录

    • 引言
    • 闰年
    • 初始代码
    • 代码改进
      • 改进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语言判断闰年的几种方法。虽然这只是一个简单的程序,但它涵盖了许多编程的基本概念,如条件判断、函数和三元操作符等。希望这篇文章能帮助你更好地理解这些概念,并应用到你的编程实践中。

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

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

相关文章

pycharm使用远程服务器的jupyter环境

1、确保服务器上安装了jupyter,如果没有&#xff0c;执行下面命令安装 pip install jupyter2、启动jupyter notebook服务 jupyter notebook --no-browser --port8888 --ip0.0.0.0 --allow-root表明在服务器的8888 端口上启动 Jupyter Notebook&#xff0c;并允许从任何 IP 地…

qt事件机制学习笔记

实现闹钟功能 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speecher(new QTextToSpeech(this)) //给语音播报者实例化空间 {ui->setupUi(this); }Widget::~Widget() {delete …

CMake学习笔记(一)一个最简单的CMakeLists嵌套示例

目录 1 mkdir project_macro 2 在project_marco中建立CMakeLists.txt 3 建立专门的src文件夹 4 在src中添加main.cpp和CMakeLists.txt 5 回到project_macro目录&#xff0c;建立build文件夹 6 进入build 文件夹&#xff0c;开始cmake 7 在build文件夹里执行make指令 8 …

Vue.js 安装

1、独立版本 我们可以在 Vue.js 的官网上直接下载 vue.min.js 并用 <script> 标签引入。 2、使用 CDN 方法 以下推荐国外比较稳定的两个 CDN&#xff0c;国内还没发现哪一家比较好&#xff0c;目前还是建议下载到本地。 Staticfile CDN&#xff08;国内&#xff09; :…

uniapp开发H5页面如何打开调试 (vConsole)

前言&#xff1a; H5页面没有微信小程序那样的直接打开调试工具的功能&#xff0c;需要手动安装引用。步骤如下&#xff1a; 一、安装vConsole npm install vconsole 二、引用vConsole 在main.js文件中引入使用 import Vconsole from vconsole let vConsole new Vconsole()…

深度学习的发展历史(深度学习入门、学习指导)

目录 &#x1f3c0;前言 ⚽历史 第一代神经网络&#xff08;1958-1969&#xff09; 第二代神经网络&#xff08;1986-1998&#xff09; 统计学习方法的春天&#xff08;1986-2006&#xff09; 第三代神经网络——DL&#xff08;2006-至今&#xff09; &#x1f3d0;总结…

【MySQL】数据库--库操作

目录 一、创建数据库 二、打开数据库 三、修改数据库 四、显示数据库 五、删除数据库 六、备份与恢复数据库 1.备份&#xff1a; 2.恢复&#xff1a; 一、创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] …] [DEF…

原生数据开发软件 TablePlus for mac

一款非常好用的本地原生数据开发软件&#xff1a;TablePlus激活版。 软件下载&#xff1a;TablePlus for mac v3.11.0激活版 这款优秀的数据库编辑工具支持 MySQL、SQL Server、PostgreSQL 等多种数据库&#xff0c;具备备份、恢复、云同步等功能。它可以帮助您轻松编辑数据库中…

案例分享 | ESP32-C3+智能车库门应用方案 小尺寸低功耗

以前的车库门Opener只能通过墙壁开关或者遥控器来控制开启或关闭&#xff0c;超过一定距离的话无法通过遥控器来操控车库门&#xff0c;也无法随时查看车库门的状态&#xff0c;而启明云端智能车库门方案&#xff0c;可以通过手机APP远程控制车库门&#xff0c;实现远程开关门、…

Cadence——导出BOM清单

首先使用Allegro PCB Designer打开xxx .brd PCB制板文件 如下图&#xff0c;然后点击Tools–>Quick Reports&#xff0c;再选择Bill of Material Report或者Bill of Material Report(Condensed)&#xff0c;这两个的区别就是上面的导出的BOM物料清单中相同的器件是不会合并的…

基于“云”重构“百度云盘”

这一篇文章是和上一篇连着的哟&#xff01; # docker run -p 80:80 -d -v /data/owncloud/:/var/www/html owncloud 一、【安装完成】 二、【打开浏览器】 三、【回到这个熟悉的界面&#xff0c;掉。】 四、【上传文件】 试了可以看哇偶&#xff01;&#xff01;&#xff01…

四年创作,心路历程

四年创作&#xff0c;心路历程 前言初识收获日常憧憬 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 前言 今天打开csdn&#xff0c;发现官方发送了一条私信,原来我已经在计算机这…

分享 | 使用Virtuoso VCPVSR工具基于标准单元的布局布线流程

​ 本节内容 导览 一、准备工作 二、运行VCP前的配置 三、VCP的布局规划 四、VCP的自动摆放 五、VSR的自动绕线 分享使用Virtuoso GXL Custom Digital Placer(VCP) & Space-based Router(VSR)工具进行基于纯数字Standard-Cell布局布线的操作流程。 VCP&VSR演…

TCP(socket 套接字)编程 1

一、TCP套接字编程架构如下 二、相关代码实现 1、服务器端代码 package com.company;import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket;public class Main {public static void main(String[] args) {…

A Novel Negative Sample Generating Method for KnowledgeGraph Embedding

摘要 为了有效地提取知识图中的关系和原因&#xff0c;将实体和关系编码到一个连续的低维语义空间中。在负样本生成阶段&#xff0c;大多数知识图嵌入方法更注重替换头或尾实体以提高训练效率&#xff0c;很少替换关系。这些负样本生成方法对关系预测的贡献不大。本文提出了一…

《深入理解计算机系统》学习(4):过程(如函数)和栈存储

目录 过程1 运行时栈2 转移控制3 数据传送4 栈上局部存储 过程 过程中是软件中一种很重要的抽象&#xff0c;提供了一种封装代码的方式&#xff0c;用一组指定的参数和一个可选的返回值实现了某种功能。然后&#xff0c;可以在程序的不同的地方使用这个功能。设计良好的软件用…

FLUOR DE LYS® HDAC fluorometric activity assay kit组蛋白去乙酰化酶荧光活性检测试剂盒

FLUOR DE LYS HDAC fluorometric activity assay kit组蛋白去乙酰化酶荧光活性检测试剂盒 目前&#xff0c;组蛋白去乙酰化酶抑制剂已经显示出其作为抗肿瘤药物的前景&#xff0c;这也自然激发了研究者们对于筛选HDAC&#xff08;Histone deacetylase&#xff0c;组蛋白去乙酰化…

【AI】使用Azure OpenAI创建自己的AI应用!

【AI】使用Azure OpenAI创建自己的AI应用! 目录 【AI】使用Azure OpenAI创建自己的AI应用!创建工作区模型介绍部署模型API参数计算Token使用Python SDK调用补全模型调用对话模型流式调用异步调用提示技巧生成对话分类推荐超级课程: Docker快速入门到精通Kubernetes入门到大师…

超越Sora!StreamingT2V AI视频模型,轻松打造120秒视觉盛宴

近日&#xff0c;来自美国德克萨斯大学奥斯汀分校&#xff08;UT奥斯丁&#xff09;等机构的研究人员提出了一项名为StreamingT2V的AI视频生成技术&#xff0c;引起了业界的广泛关注。这项技术打破了传统视频生成的局限&#xff0c;实现了高度一致且长度可扩展的视频生成&#…

使用 nodejs + zx 编写脚本更新本地 hosts

在日常的开发和运维工作中&#xff0c;我们经常需要修改本地的 hosts 文件来实现一些特定的网络配置&#xff0c;比如将某个域名指向特定的 IP 地址。而使用 Node.js 结合 zx 工具可以让我们更轻松地编写和运行脚本来更新本地的 hosts 文件。 一、功能介绍 目标&#xff1a; 通…