黑马程序员技术交流社区

标题: 输入年月日 判断这一天是今年第几天 [打印本页]

作者: coding_wang    时间: 2015-9-9 23:57
标题: 输入年月日 判断这一天是今年第几天
//题目:输入某年某月某日,判断这一天是这一年的第几天?
//先设置数组存储闰年与非闰年每个月的天数;判断各个录入数字是否为正整数,判断该年是否为闰年,判断输入的月数是否超过12,判断该日期是否超过该月的最大天数.
//根据是否闰年,决定提取那个数组计算天数.
#include <stdio.h>
void main()
{
        int month[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
                                          31,29,31,30,31,30,31,31,30,31,30,31};                                                //设置平年闰年每月天数的数组
        int year=0,mon=0,day=0,leap=0;
        while(1)                                                        //仅当输入正确计算完成后才跳出循环.
        {
                printf("请输入年月日:\n");
                scanf("%d%*c%d%*c%d",&year,&mon,&day);
                if(  (year % 4 == 0 && year % 100!=0) || (year % 400 == 0)   )//如果是闰年 则leap=1
                        leap = 1;
                if(year>=0 && mon>0 && mon<12 && day >0 && day <= month[leap][mon-1])        //如果输入正确,则开始计算日期
                {
                        printf("%d年%d月%d日",year,mon,day);
                        for(int i=0;i<mon-1;i++)
                        {
                                day += month[leap][i];
                        }
                        break;
                }
                else//如果输入错误,则重新输入,leap置零,重新计算下次输入的年份是否为闰年
                {
                        printf("输入错误,请重新输入:\n");
                        leap =0;
                }
        }
        printf("为当年的第%d天.\n",day);
}


作者: coding_wang    时间: 2015-9-9 23:58
自嗨是个好习惯
作者: Music_棍棍    时间: 2015-9-10 00:25
怎么可以这样玩
作者: 克莱斯勒    时间: 2015-9-10 00:58
不错,挺强...




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2