C程序:请使用switch语句和if...else语句,计算2008年8月8日这一天,是该年中的第几天?

本文介绍了一个简单的C语言程序,用于计算指定日期(包括闰年处理)是一年中的第几天。通过定义年月日并考虑不同月份的天数及闰年二月的变化,程序实现了日期计算的功能。

 #include <stdio.h>
int main() 

    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    int i,feb;
    int sum=0;
    if(year%4==0 &&year%100!=0 ||year%400==0)
    {
        feb=29;
    }
    else
    {
        feb=28;
    }
    for(i=1;i<month;i++)
    {
        switch(i)
        {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                    sum+=31;
                    break;
            case 2:
                    sum+=feb;
                    break;
            default:
                    sum+=30;
                    break;
        }
    }
     sum+=day;
     printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
     return 0;
}

在C语言中,你可以使用if-elseswitch语句结合期规则来编写一个简单的程序,用于计算给定月份的天数。这里是一个基本示例: ```c #include <stdio.h> int main() { int year, month, days_in_month; // 获取用户输入 printf("输入: "); scanf("%d", &year); printf("输入月份(1-12): "); scanf("%d", &month); // 根据月份计算天数 if (year % 4 == 0) { // 普通闰规则 if (year % 100 == 0) { if (year % 400 == 0) { // 四百一闰 switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days_in_month = 31; break; case 4: case 6: case 9: case 11: days_in_month = 30; break; default: return -1; // 非法月份 } } else { // 普通switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days_in_month = 31; break; case 4: case 6: case 9: case 11: days_in_month = 30; break; case 2: days_in_month = 28; break; // 二月有28天 } } } else { // 世纪非闰 switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days_in_month = 31; break; case 4: case 6: case 9: case 11: days_in_month = 30; break; case 2: days_in_month = 28; break; // 二月有28天 } } } else { // 非闰 switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days_in_month = 31; break; case 4: case 6: case 9: case 11: days_in_month = 30; break; case 2: days_in_month = 28; break; // 二月有28天 } } // 输出结果 printf("在%d%02d月,这个月共有%d天.\n", year, month, days_in_month); return 0; }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值