题目:输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,应该先把前两个月的天数加起来,然后再加上5天即为本年的第几天。特殊情况是闰年且输入的月份大于3时需要考虑多加一天。

实例

#include <stdio.h>

int main() {
    int day, month, year, sum, leap;
    
    printf("\n请输入年、月、日,格式为:年,月,日(2015,12,10)\n");
    scanf("%d,%d,%d", &year, &month, &day); // 格式为:2015,12,10
    
    switch (month) { // 先计算某月之前月份的总天数
        case 1:
            sum = 0;
            break;
        case 2:
            sum = 31;
            break;
        case 3:
            sum = 59;
            break;
        case 4:
            sum = 90;
            break;
        case 5:
            sum = 120;
            break;
        case 6:
            sum = 151;
            break;
        case 7:
            sum = 181;
            break;
        case 8:
            sum = 212;
            break;
        case 9:
            sum = 243;
            break;
        case 10:
            sum = 273;
            break;
        case 11:
            sum = 304;
            break;
        case 12:
            sum = 334;
            break;
        default:
            printf("data error");
            break;
    }
    
    sum = sum + day; // 再加上某天的天数
    
    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { // 判断是否为闰年
        leap = 1;
    } else {
        leap = 0;
    }
    
    if (leap == 1 && month > 2) { // 如果是闰年且月份大于2,则总天数应该再加一天
        sum++;
    }
    
    printf("这是这一年的第 %d 天。\n", sum);
    
    return 0;
}

以上实例输出结果为:

请输入年、月、日,格式为:年,月,日(2015,12,10)
2015,10,1
这是这一年的第 274 天。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题