(免费)C语言源码(平年、闰年、各月份天数判断)

文章介绍了C语言的基础代码示例,包括如何定义结构体和处理用户输入,用于判断输入的年份是否为闰年以及验证月份天数。作者推荐了B站UP主工控圈的教程作为学习资源。
摘要由CSDN通过智能技术生成

目录

一、说明:

二、代码:

三、闲聊:


一、说明:

By:   RuoChen404(Larry,另外一个名字)

CSDN: 钱塘江上潮信来,今日方知我是我

原创内容,转载须说明及网页地址

C语言入门学习推荐:

B站up主: 工控圈

(是搬运kerwin老师的课,不过也可以看都一样)

二、代码:

#include <stdio.h>
#include <stdlib.h>

typedef struct {//显得有B格,可以不用,在main里直接用year,month,day就行
    short y, m, d;
}Data;

int main()
{
    Data *data = (Data*)malloc(sizeof(Data));//创建data指针,并给其分配空间

    if (data == NULL) {
        printf("没有申请到内存,可能内存不足。");
        return 1;
    }//上面几行为B格代码,可以不用

    short n = 0, k = 0;//   n来标记平年还是闰年,k来标记当月天数

    printf( "请输入年份\n例如:2024.3.5\n" );

    while (1) {    
        if(scanf_s("%hd.%2hd.%2hd", &data->y, &data->m, &data->d) == 3)//限定 月份 和 天数 大小
            if (data->m > 0 && data->m < 13 && data->d > 0 && data->d < 32) break;
            else printf("输入不合理,请重新输入:\n");
        else printf("输入不合理,请重新输入:\n");//其实只用中间两行if-else就行了,不过这更严谨了些
    }
    
    rewind(stdin);//windows平台下清空字符缓冲区

    printf("%hd年%hd月%hd日是 " , data->y, data->m, data->d);//data->y换成year,以此类推

    if (data->y % 400 == 0 || data->y % 4 == 0 && data->y % 100 != 0) {
        printf("闰年\n");
        n++;
    }
    else printf("平年\n");

    switch (data->m)
    {//穿透
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:k = 31; break;
    case 2:k = n > 0 ? 29 : 28; break;
    case 4:
    case 6:
    case 9:
    case 11:k = 30; break;
    }

    printf("此年%hd月共有%hd天\n", data->m, k);

    free(data);//清除data内存

    return 0;
}

三、闲聊:

         重温一下C,B站up主:工控圈,讲的很不错

借鉴了部分内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值