A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liubo690337760 中级黑马   /  2016-3-26 21:58  /  1061 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>

int main()
{
    //定义变量
    int day,month,year,leap,ok,sum = 0;
    printf("***查询开始***\n\n");
    //用循环实现多次查询
    for(;;)
    {
        //获取年份数据
        printf("please input  year:");
        scanf("%d",&year);
        //判断是不是闰年
        if(year % 400 == 0 || (year % 4 == 0 && year %  100!=0))
            leap=1;
        else
            leap=0;
        //循环确保误输入的月份是小余12的,
        for(;;)
        {
            //获取月份数据
            printf("please input month:");
            scanf("%d",&month);
            if(month<=12)
                break;
            else
                printf("date error\n");//数据不符合要求时报错
        }
        
        //确保输入的对应月份的日期是正确的
        for(;;)
        {
            //获取日期数据
            printf("please input   day:");
            scanf("%d",&day);
            //判断输入的日期是否真的存在,也是防止错误输入时程序计算错误但是并不报错
            if((month==2&&leap==1&&day<=29)||(month==2&&leap==0&&day<=28))
                break;
            else if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day<=31)
                break;
            else if((month==4||month==6||month==9||month==11)&&day<=30)
                break;
            else printf("date error\n");
        }
        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("date error\n");break;
               
        }
        //日期计算
        sum=sum+day;
        if(leap==1&&month>2)
            sum++;
        //结果输出
        printf("\nIt is the %dth day.\n\n",sum);
        //提示是否需要重复查询
        printf("是否需要继续查询? 是1/否2:");
        scanf("%d",&ok);
        if(ok==2)
        {
            printf("\n***查询结束,呵呵再见!!***\n\n");//退出提示
            break;
        }
        else
            printf("\n***请继续查询***\n");
    }
    return 0;
}
    输入一个年份,月份,日.判断是闰年还是平年,输出是这年的第几天!写到这里出问题了,下不下去了.求拯救啊!

12 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 加入黑马