题目描述
定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。
输入年月日
输出当年第几天
思路
这里只需要注意判断年份是否为闰年即可,若为闰年则在总数上再加一
代码
#include<stdio.h>
struct date
{
int year;
int month;
int day;
};
struct date;
int isLeap(int);
int main()
{
int sum = 0, i;
struct date Date;
int mon[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
scanf("%d %d %d", &Date.year, &Date.month, &Date.day);
for(i = 0; i < Date.month - 1; i++)
{
sum += mon[i];
}
sum += Date.day;
if(isLeap(Date.year))
{
sum += 1;
}
printf("%d", sum);
return 0;
}
int isLeap(int year)
{
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return 1;
else
return 0;
}
易错点
我声明结构体Date的时候直接使用语句date Date,虽然在dev上可以正常运行,但是在网站上的时候编译没有通过,记得在声明结构体时加上struct!!!