編一程序,輸入年月日,計算該天是該年第幾天

//選擇結構流程
#include"stdio.h"         /*編譯預處理命令*/ 
void main()                                /*main函數*/ 
{
    int iy,im,id;                        /*定義整型變量*/ 
    printf("請輸入年月日:");/*輸出提示信息*/ 
    scanf("%d%d%d",&iy,&im,&id);/*從鍵盤輸入三個數*/ 
    if(iy%400==0||(iy%4==0&&iy%100!=0))/*判斷是否閏年*/ 
        id=id+1;                                                    /*閏年+1*/ 
    switch(im)                                                    /*判斷的目標*/ 
    {
    case 1:                                                            /*是否匹配*/ 
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id);break;
    case 2:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31);break;
    case 3:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28);break;
    case 4:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28+31);break;
    case 5:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28+31+30);break;
    case 6:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28+31+30+31);break;
    case 7:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28+31+30+31+30);break;
    case 8:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28+31+30+31+30+31);break;
    case 9:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28+31+30+31+30+31+31);break;
    case 10:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28+31+30+31+30+31+31+30);break;
    case 11:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28+31+30+31+30+31+31+30+31);break;
    case 12:
        printf("%d年%d月%d日是%d年第%d天",iy,im,id,iy,id+31+28+31+30+31+30+31+31+30+31+30);break;
    }
    getch();

//一開始用的是else if,結果發現和第一個if有矛盾。然後換switch發現有問題,發現是
//沒有加getch()。如果書上沒有類似的題目,我也不曉得怎麼查找問題啊。下面的註釋代碼太長就不寫了。 

//反正就是一三五七八十臘31天永不差。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章