文章
18
粉丝
0
获赞
3
访问
11.1k
先准备存储月份的数组,其中2月份的天数根据是否年份确定,初始化为0天
判断是否错误数据:年份不能是负数,月份在合理范围内,日根据输入的月份来判断,日的判断是通过和初始化的数组逐一对比,如2月不可能出现30天
#include<stdio.h>
typedef struct {
int year;
int month;
int day;
}date;
int isyear(int x) {//闰年判断
if (x % 400 == 0) return 1;
else if (x % 4 == 0 && x % 100 != 0) return 1;
else return 0;
}
int main() {
int mon[12] = { 31,0,31,30,31,30,31,31,30,31,30,31 };
date input;
int days, index;
while (scanf("%d %d %d", &input.year, &input.month, &input.day) != EOF) {
if (input.year <= 0 || input.month <= 0 || input.month>12) {
printf("Input error!\n");
continue;
}
if (isyear(input.year)) {//根据年份确定2月的天数
mon[1] = 29;
}
else {
mon[1] = 28;
}
if (input.day<=0 || input.day>mon[input.month-1]) {//日的输入是否正确依据年月
printf("Input error!\n");
continue;
}
days = 0;
for (int i = 0; i < input.month - 1; i++) {
days += mon[i];
}
days += input.day;
printf("%...
登录后发布评论
暂无评论,来抢沙发