双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

年月日转换-指针法

starcat starcat 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
想用数组指针试试。不想用参考答案里的字符指针方法。
不知道怎么摆平编译时的两个报错消息,请帮帮忙,谢谢。

#include <stdio.h>
static char daytab[][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}
};
static char (*arrptr)[13];
arrptr = daytab;


int day_of_year(int year, int month, int day)
{
int i, leap;
leap = year % 4 == 0 && year %100 != 0 || year % 400 == 0;
for (i = 1; i < month; i++)
day += *(*(arrptr+leap) + i);
return day;
}

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; yearday > *(*(arrptr+leap) + i); i++)
yearday -= *(*(arrptr+leap) + i);
*pmonth = i;
*pday = yearday;
}

int main()
{
int year, month, yearday, day;
int *pmonth, *pday;
printf("Enter the year, month and day:\n");
scanf("%d%d%d", &month, &day, &year);
printf("the %dth day of the year.\n", day_of_year(year, month, day));

printf("Enter the year and yearday:\n");
scanf("%d%d", &year, &yearday);
printf("the %dth day of month %d.\n", *pmonth, *pday);

return 0;
}
...全文
评论 9
收藏 已收藏
分享
返回顶部
starcat
C语言 70,039 成员 243,237 内容