轉換日期(C)

時越z發表於2020-12-25

題目:

給定的整數n,計算一年中的第n天是幾月幾日。
假定年份是平年,即2月有28天。

解答:

#include <stdio.h>
struct date{
    int month;        // 月 
    int day;        // 日 
};
typedef struct date Date;
Date to_date(int n);
int main()
{
    Date date;
    int n;
    scanf("%d", &n);
    date = to_date(n);
    printf("%d %d", date.month, date.day);
    return 0;
}
Date to_date(int n)
{
	Date a;
	int yue[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	int i= 0;
	int num = 0;
	for(i = 0;i < 12;i++)
	{
		num += yue[i];
		if(n <= num)
		{
			a.month = i + 1;
			a.day = n - (num - yue[i]);
			break;
		}
	}
	return a;
}

注意下標超界會引起不可預知的錯誤!!!

相關文章