练习5-8 函数day_of_year和month_day中没有进行错误检查,请解决该问题

来源:互联网 发布:知乎中国出口构成 编辑:程序博客网 时间:2024/05/18 18:46
#include <stdio.h>void month_day(int year,int yearday,int *pmonth,int *pday);main(){    int m,d;    month_day(1988,367,&m,&d);    printf("month:%d day:%d",m,d);}static char daytab[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}};void month_day(int year,int yearday,int *pmonth,int *pday){    int i,leap;    leap=year%4==0 && year%100 !=0 ||year%400==0;    for(i=1;i<=12 && yearday>daytab[leap][i];i++)        yearday-=daytab[leap][i];    if(i>12){        *pmonth=-1;        *pday=-1;    }    else{        *pmonth=i;        *pday=yearday;    }}

答案if(i>12 && yearday>daytab[leap][12])处错误。

0 0
原创粉丝点击