1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            2009秋江蘇計算機等級C上機真題1

            改錯題:
            [程序功能]
              輸入兩個正確日期且年份在1900-9999范圍內,計算
            并輸出兩個日期之間間隔的天數,例如:2008-8-1
            和2009-8-1之間間隔的天數為365
              提示:能被4整除并且不能被100整除的年份是閏年,能
            被400整除的年份也是閏年,其他年份則是平年
            [測試數據與運行結果]
            顯示:first  date:
            輸入:1980-2-1
            顯示:second date:2009-8-1
            輸出:10774  days
            [含有錯誤的源程序]
            #include <stdio.h>
            #define leap(int y) ((y)%4==0 && (y)%100!=0||(y)%400==0)
            struct d
            {int y,m,d;};
            int days(struct d d1,struct d d2)
            {int mon[2][13]=
              {{0,31,28,31,30,31,30,31,31,30,31,30,31},
               {0,31,29,31,30,31,30,31,31,30,31,30,31}};
             int i; long td=0;
             for(i=d1.y;i<d2.y;i++)
               td=leap(i)?366:365;
             for(i=1;i<d1.m;i++)
               td-=mon[leap(d1.y)][i];
             td-=d1.d-1;
             for(i=1;i<d2.m;i++)
              td+=mon[leap(d2.y)][i];
             td+=d2.d-1;
             return td;
            }

            void main()
            {struct d d1,d2;
             long td;
             printf("first date:");
             scanf("%d-%d-%d",d1.y,d1.m,d1.d);
             printf("second date:");
             scanf("%d-%d-%d",d2.y,d2.m,d2.d);
             td=days(d1,d2);
             printf("%ld",td);
            }

            国产在线精品一区二区三区不卡_亚洲第一极品精品无码_永久免费无码网站在线观看_亚洲av综合日韩