这是我做的求天数的一个程序,有一问题就是如果是润年的话,输入2月29的话,此程序也会认为是错误的日期,请大家帮忙改一下,谢谢.
#include <stdio.h> int num[12]={31,30,28,30,31,30,31,31,30,31,30,31}; struct date { int year,month,day; }; int sum(int year,int month,int day); void main() { int i; struct date stu; do { printf("请输入日期(年,月,日):\n"); scanf("%d,%d,%d",&stu.year,&stu.month,&stu.day); if(stu.day>num[stu.month-1]||stu.month>12) printf("无效日期,请重新输入!\n");
}while(stu.day>num[stu.month-1]||stu.month>12);
printf("今天是第%d天!",sum(stu.year,stu.month,stu.day)); }
int sum(int year,int month,int day) { static int i,total; for(i=0;i<month-1;i++) total+=num[i]; total+=day;
if((year%400==0||(year%100&&year%4==0))&&month>2) total++;
return total; }