18649448973 发表于 2023-3-24 19:27

闰年平年判断

本帖最后由 18649448973 于 2023-3-24 19:28 编辑


#include <stdio.h>
void test3();
int main() {
    test3();
    return 0;
}

/*
*请用一个逻辑表达式来判断某一年是否为闰年。
某一年份如果符合下边 A 或 B 其中一个,我们称之为闰年:
A. 能被 4 整除,但不能被 100 整除;
B. 能被 400 整除。
*/
void test3() {

    do {
      printf("\n================测试3==闰年平年================\n");
      int yer = 100;

      printf("请输入一个年份后回车:");
      scanf("%d", &yer);
      getchar();//吃掉回车缓存

      if (yer % 100 == 0 && (yer % 400 != 0 || yer % 4 != 0))//判断该数是否能被100整除,不能被400或4整除
            printf("%d年为平年\n", yer);
      else if (yer % 4 == 0 || yer % 400 == 0) //判断该数是否能被4或者400整除
            printf("%d年为润年\n", yer);
      else printf("%d年我也不懂是什么年\n", yer);//无法计算的其他年份
      printf("%d年,除4=%.2f,除400=%.2f,除100=%.2f\n", yer, (float) yer / 4.0, (float) yer / 400.0,
               (float) yer / 100.0);
      printf("按回车退出,任意键继续");
    } while (getchar() != '\n');
}

wincao 发表于 2023-3-25 18:25

以下是一个简单的例子,假设您要判断的年份为year。

#include <stdio.h>;
int main()
{
int year;
printf("请输入一个年份:");
scanf("%d",&year);
if(year%4 == 0) {
if( year%100 == 0) {
if ( year%400 == 0) {
printf("%d 是闰年", year);
}
else {
printf("%d 不是闰年", year);
}
}
else {
printf("%d 是闰年", year );
}
}
else {
printf("%d 不是闰年", year);
}
return 0;
}

这个例子使用了嵌套的if语句来判断一个年份是否为闰年。
- 如果一个年份能被4整除,但不能被100整除,则它是一个闰年。
- 如果一个年份既能被4整除,又能被100整除,但不能被400整除,则它不是一个闰年。
- 如果一个年份能被400整除,则它是一个闰年。
希望这个例子能帮到您。

L6110 发表于 2024-3-14 12:03

之前学c的时候做题搞了一个求出2000-3000之间的闰年,改一改也差不多啊哈哈
#include <stdio.h>
main()
{   int x=2000,y=0;
        for(;x<=3000;x++)
        {
                {if(x%100!=0||x%400==0)
                        if(x%4==0||x%400==0)       
                                {printf("%d ",x);
                                y++;
                               
                                }
                }
                if(y==10) {printf("\n");y=0;}
        }
}

qyanye 发表于 2023-3-25 09:00

2023年呢?今年不是闰年吗?

vaycore 发表于 2023-3-25 09:14

qyanye 发表于 2023-3-25 09:00
2023年呢?今年不是闰年吗?

闰年和农历的闰月不一样

starkcccc 发表于 2023-3-25 12:43

当初学C的时候也敲过这个算法,现在七年过去了,令人感慨啊。

18649448973 发表于 2023-3-25 17:30

qyanye 发表于 2023-3-25 09:00
2023年呢?今年不是闰年吗?

每隔4年,或每隔400年,且不是百年

ygt123 发表于 2023-3-25 23:57

wincao 发表于 2023-3-25 18:25
以下是一个简单的例子,假设您要判断的年份为year。

#include ;


学到了!!!!!

mozhongzhou 发表于 2023-8-19 12:36

你好 对于这个问题我之前也遇到过 我可以给出一份答案 希望能帮到你
bool isLeapYear(int year) {
    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

当时我要解决日期加减的问题 除了判断平闰 我记得还写了平闰年每月对应的天数

zjmks 发表于 2023-9-15 14:15

mozhongzhou 发表于 2023-8-19 12:36
你好 对于这个问题我之前也遇到过 我可以给出一份答案 希望能帮到你
bool isLeapYe ...

嗯switch语句判断天数

mozhongzhou 发表于 2023-9-15 16:10

zjmks 发表于 2023-9-15 14:15
嗯switch语句判断天数

直接开个数组操作 switch太难看了
页: [1] 2
查看完整版本: 闰年平年判断