当前位置: 代码迷 >> C语言 >> C语言生日题.
  详细解决方案

C语言生日题.

热度:208   发布时间:2006-02-12 17:57:00.0
就是返回整数 1 啊
----------------解决方案--------------------------------------------------------
不懂,有何作用?
----------------解决方案--------------------------------------------------------

代码有很多地方可以精简

判断闰年
#define leep(year) (!(year%400)||(!(year%4)&&year%100))

日期可以用结构体
struct Date{int y,m,d;};

获取一个日期在该年是第几天的函数可以这样写
int days(struct Date d)
{
int sum=d.d;
switch(d.m)
{
case 12:sum+=30;
case 11:sum+=31;
case 10:sum+=30;
case 9:sum+=31;
case 8:sum+=31;
case 7:sum+=30;
case 6:sum+=31;
case 5:sum+=30;
case 4:sum+=31;
case 3:sum+=28+leep(d.y);
case 2:sum+=31;
}
return sum;
}


----------------解决方案--------------------------------------------------------
谢谢楼上的啊  谢谢 啊 谢谢
----------------解决方案--------------------------------------------------------
12楼的 看看C的教科书啊 有讲解得
----------------解决方案--------------------------------------------------------
15楼.

你的哪段程序,是如何判断是否输错并重输?
----------------解决方案--------------------------------------------------------
while(1)
{
printf("Please intput the frist date(yyyy mm dd): ");
scanf("%d%d%d",&year[0],&month[0],&day[0]);
if(checkdate(year[0], month[0], day[0])) break;
printf("Data Error!\n");
}
while(1)
{
printf("Please intput the second date(yyyy mm dd): ");
scanf("%d%d%d",&year[1],&month[1],&day[1]);
if(checkdate(year[1], month[1], day[1]) && check2(year[0], year[1])) break;
printf("Data Error!\n");
}

----------------解决方案--------------------------------------------------------

神好厉害的代码!!!


----------------解决方案--------------------------------------------------------
  相关解决方案