c语言判断从键盘上输入的那一年是否为闰年
时间: 2023-06-09 12:08:18 浏览: 108
判断从键盘上输入的年份是否为闰年,可以使用以下代码:
```
#include <stdio.h>
int main() {
int year;
printf("请输入年份:");
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
printf("%d是闰年。\n", year);
} else {
printf("%d不是闰年。\n", year);
}
return 0;
}
```
这个程序首先从键盘上读入一个整数年份,然后使用 if 语句判断这个年份是否为闰年。判断公式为:
闰年的判断条件如下:
1. 能被4整除但不能被100整除
2. 能被400整除
如果满足这两个条件之一,就说明这一年是闰年。
相关问题
编写程序判定给定年份是否为闰年。年份由键盘输入
判断一个年份是否为闰年的规则是这样的:
- 如果该年份能被4整除但不能被100整除,那么它是闰年;
- 或者,如果该年份能够同时被400整除,那也是闰年。
以下是一个简单的C语言程序,用于检测用户输入的年份是否是闰年:
```c
#include <stdio.h>
int is_leap_year(int year) {
if (year % 4 == 0) {
if (year % 100 != 0 || year % 400 == 0)
return 1; // 是闰年
else
return 0; // 不是闰年
} else {
return 0; // 不是闰年
}
}
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
if (is_leap_year(year)) {
printf("%d 年是闰年。\n", year);
} else {
printf("%d 年不是闰年。\n", year);
}
return 0;
}
```
在这个程序中,`is_leap_year` 函数接收一个整数参数 `year`,并根据上述规则返回 1(闰年)或 0(非闰年)。主函数则获取用户输入的年份并调用这个函数进行判断。
C语言某渔人从y年a月b日起,实行“三天打鱼两天晒网”,判断同年c月d日(c>=a,若c==a,则d>=b)他在打鱼(输出1)还是在晒网(输出0)。y、a、b和c、d从键盘输入,格式为y-m-d和m-d。要求编写函数: ⑴ int leap( int y ); y年为闰年,则返回1,否则返回0。 ⑵ int days( int y, int m, int d ); 返回y年m月d日是该年的第几天。
好的,下面是 C 语言的实现:
```c
#include <stdio.h>
// 判断是否为闰年
int leap(int y) {
if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) {
return 1;
} else {
return 0;
}
}
// 计算某一天是该年的第几天
int days(int y, int m, int d) {
int month_days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (leap(y)) {
month_days[1] = 29;
}
int res = 0;
for (int i = 0; i < m-1; i++) {
res += month_days[i];
}
res += d;
return res;
}
// 判断打鱼还是晒网
int fish_or_not(int y, int a, int b, int c, int d) {
int total_days = days(y, 12, 31); // 计算该年总共有多少天
int start_day = days(y, a, b); // 计算渔人开始打鱼的那一天是该年的第几天
int end_day = days(y, c, d); // 计算要判断的那一天是该年的第几天
int interval = (end_day - start_day) % 5; // 计算打鱼和晒网的间隔
if (interval < 3) {
return 1; // 打鱼
} else {
return 0; // 晒网
}
}
int main() {
int y, a, b, c, d;
printf("请输入开始打鱼的日期(格式为y-m-d):");
scanf("%d-%d-%d", &y, &a, &b);
printf("请输入要判断的日期(格式为m-d):");
scanf("%d-%d", &c, &d);
int result = fish_or_not(y, a, b, c, d);
if (result == 1) {
printf("在打鱼\n");
} else {
printf("在晒网\n");
}
return 0;
}
```
注意:C 语言中的数组下标是从 0 开始的,因此在 `days` 函数中,月份需要减 1。另外,C 语言中的数组初始化需要用大括号 `{}`,而不是中括号 `[]`。
阅读全文