c語言—輸入年、月、日,算出該日是該年的第幾天


/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int y,m,d;//年、月、日
    int cr,ds=0,i;//cr:判斷是否為閏年的變量,是為1,否為0;ds:天數的總和;i是一個循環變量
    char run[12] = {31,29,31,30,31,30,31,31,30,31,30,31};//閏年的每月的天數
    char ping[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//平年的每月的天數
    printf("請輸入你要查詢的年份:\n");
    scanf("%d",&y);//輸入年份
    cr = y%4==0&&y%100!=0||y%400==0;//判斷是否為閏年,是為1,否為0
    do{
        printf("請輸入月份:\n");
        scanf("%d",&m);//輸入月份
        if(m<0||m>12){//判斷有沒輸入錯誤
        printf("輸入有誤,請重新輸入!\n");}
    }while(m<0||m>12);//有錯重新輸入
    do{
        printf("請輸入日期:\n");
        scanf("%d",&d);//輸入日期
        if(d>31){//判斷有沒有輸入大於31號的
            printf("輸入有誤,請重新輸入!(一個月最多有31天)\n");
        }else if(d>run[m-1]&&cr==1)//判斷閏年某天數是否在該月的最多天數內
        {
            printf("%d月最多有%d天,請重新輸入!\n",m,run[m-1]);
        }else if(d>ping[m-1]&&cr==0)//判斷平年某天數是否在該月的最多天數內
        {
            printf("%d月最多有%d天,請重新輸入!\n",m,ping[m-1]);
        }
    }while((d>run[m-1]&&cr==1)||(d>ping[m-1]&&cr==0));
    if(cr == 1){//計算閏年的某天在該年的總天數
        for(i=0;i<m-1;i++){
        ds += run[i];
        }
    }else {//計算平年的某天在該年的總天數
        for(i=0;i<m-1;i++){
            ds += ping[i];
        }
        ds += d;//加上當月的天數
    printf("%d年%d月%d日是該年的第%d天!",y,m,d,ds);
    }  
    
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM