/*
题目:输入某年某月某日,判断这一天是这一年的第几天?
*/
#include <stdio.h>
int daysOfMonth[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int calculateDays(int year, int month, int day) {
int days = 0;
for (int i = 1; i < month; i++) {
days += daysOfMonth[i];
}
days += day;
if (isLeapYear(year) && month > 2) {
days += 1; // 闰年的2月加1天
}
return days;
}
int main() {
int year, month, day;
printf("请输入年月日(用空格隔开):");
scanf("%d %d %d", &year, &month, &day);
if (year > 0 && month > 0 && month <= 12 && day > 0 && day <= daysOfMonth[month]) {
int result = calculateDays(year, month, day);
printf("%d年%d月%d日是%d年的第%d天\n", year, month, day, year, result);
} else {
printf("输入日期无效\n");
}
return 0;
}
这个程序通过用户输入某年某月某日,判断这一天是这一年的第几天。程序包含了一些基本的条件判断、循环和函数调用,涉及了日期计算和闰年判断。这是C语言经典100例中的一种典型题目,通过解决这样的题目,可以帮助学习者更好地理解和掌握C语言的各种特性。
转载请注明出处:http://www.zyzy.cn/article/detail/13543/C 语言