文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>4、一年第几天问题

4、一年第几天问题

时间:2010-03-30  来源:280552108

【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
      情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
#include <stdio.h>
#include <stdlib.h>

int
main(void)
{
    int d, m, y, sum, leap;

    printf("请按(例如2010,03,30)格式输入年,月,日\n");
    scanf("%d,%d,%d", &y, &m, &d);
    switch(m){
        case 1:
            sum = 0;
            break;
        case 2:
            sum = 0 + 31;
            break;
        case 3:
            sum = 0 + 31 + 28;
            break;
        case 4:
            sum = 0 + 31 + 28 + 31;
        case 5:
            sum = 0 + 31 + 28 + 31 + 30;
            break;
        case 6:
            sum = 0 + 31 + 28 + 31 + 30 + 31;
            break;
        case 7:
            sum = 0 + 31 + 28 + 31 + 30 + 31 + 30;
            break;
        case 8:
            sum = 0 + 31 + 28 + 31 + 30 + 31 + 30 + 31;
            break;
        case 9:
            sum = 0 + 31 + 28 + 31 + 30 + 31 + 30 + 31+ 31;
            break;
        case 10:
            sum = 0 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
            break;
        case 11:
            sum = 0 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
            break;
        case 12:
            sum = 0 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
            break;
        default:
            printf("你好像看错月份了吧。\n");
            exit(1);
            break;
    }
    sum += d;
    if(y % 400 == 0 || (y % 4 == 0 && y % 100 != 0))
        leap = 1;
    else
        leap = 0;
    if(leap == 1 && m > 2)
        sum ++;
    printf("今天是今年的第%d天。\n", sum);

    return 0;
   
}
3.输出结果:
andy@andy-laptop:~/work/study/c/100$ ./4
请按(例如2010,03,30)格式输入年,月,日
2010,03,30
今天是今年的第89天。
andy@andy-laptop:~/work/study/c/100$ ./4
请按(例如2010,03,30)格式输入年,月,日
2010,13,31
你好像看错月份了吧。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载