鸭子tv国产极品在线观看_成人69视频在线播放_91精品免费在线观看_亚洲AT永久偷窥无码精品_国产精品自产拍在线观看涩浪潮久

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
2009秋江蘇計(jì)算機(jī)等級(jí)C上機(jī)真題1

改錯(cuò)題:
[程序功能]
  輸入兩個(gè)正確日期且年份在1900-9999范圍內(nèi),計(jì)算
并輸出兩個(gè)日期之間間隔的天數(shù),例如:2008-8-1
和2009-8-1之間間隔的天數(shù)為365
  提示:能被4整除并且不能被100整除的年份是閏年,能
被400整除的年份也是閏年,其他年份則是平年
[測(cè)試數(shù)據(jù)與運(yùn)行結(jié)果]
顯示:first  date:
輸入:1980-2-1
顯示:second date:2009-8-1
輸出:10774  days
[含有錯(cuò)誤的源程序]
#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);
}