您的位置:首页 > 其它

《c程序设计语言》读书笔记-5.9-指针转换天数和日期

2014-11-14 22:13 183 查看
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

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}
};

int day_of_year(int year,int month,int day)
{
int leap;
char *p;

leap = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
p = daytab[leap];
while(--month)
day += *++p;

return day;
}

void month_day(int year,int yearday,int *pmonth,int *pday)
{
int leap;
char *p;

leap = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
p = daytab[leap];
while(yearday > *++p)
yearday -= *p;
*pmonth = p - *(daytab + leap);
*pday = yearday;
}
int main()
{
int n;
int month = 0,day = 0;
int *pmonth = &month,*pday = &day;

n = day_of_year(2014,11,14);
printf("%d\n",n);

month_day(2014,318,pmonth,pday);
printf("%d %d",*pmonth,*pday);

return 0;
}


*(daytab + leap) 表示的是地址。基础不牢啊,还想了半天。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: