用C语言编写程序判定给定年份是否为闰年。年份由键盘输入。
时间: 2024-10-19 21:05:40 浏览: 94
在C语言中,判断一个年份是否为闰年的规则如下:
1. 如果该年份能被4整除,但是不能被100整除,那么它是闰年。
2. 如果该年份既能被400整除,又能被4整除,尽管也能被100整除,它仍然是闰年。
以下是简单的C语言函数来实现这个功能:
```c
#include <stdio.h>
int is_leap_year(int year) {
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
return 1; // 返回1表示是闰年
} else {
return 0; // 返回0表示不是闰年
}
}
int main() {
int input_year;
printf("请输入一个年份:");
scanf("%d", &input_year);
if (is_leap_year(input_year)) {
printf("%d年是闰年。\n", input_year);
} else {
printf("%d年不是闰年。\n", input_year);
}
return 0;
}
```
在这个程序中,`is_leap_year`函数接收一个年份作为参数并返回一个整数,判断是否为闰年。在主函数`main`中,用户会被提示输入年份,然后调用`is_leap_year`函数,并根据结果打印相应的信息。
相关问题
C语言输入一个年份判断是否为闰年
### C语言实现判断闰年算法
在C语言中,可以通过条件语句来判断给定的一年是否为闰年。下面是一个完整的代码示例外加解释。
#### 完整的C语言代码用于判断闰年:
```c
#include <stdio.h>
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return 1;
} else {
return 0;
}
}
int main() {
int year;
printf("请输入一个年份: ");
scanf("%d", &year);
if (isLeapYear(year)) {
printf("%d 是闰年\n", year);
} else {
printf("%d 不是闰年\n", year);
}
return 0;
}
```
这段代码定义了一个名为`isLeapYear`的函数用来检测输入的年份是不是闰年[^1]。如果返回值为1,则表示该年是闰年;如果是0则不是。主函数负责接收用户的输入并调用此功能打印相应的消息[^2]。
对于闰年的判定依据如下:
- 如果年数能被4整除但不能被100整除;
- 或者能够被400整除,
那么这一年就是闰年[^3]。
当年份能够被4但不能被100整除时为闰年,或者年份能够被400整除时为闰年,据此可以设计判断输入的年份是否为闰年的C语言程序代码,具体代码如下。 通过分析上述代码画出程序的流程图,并以表格行式通过条件覆盖设计出判定条件和测试用例
在C语言中,我们可以编写如下的函数来判断一个给定的年份是否是闰年:
```c
#include <stdio.h>
// 定义一个函数is_leap_year 判断是否是闰年
int is_leap_year(int year) {
if (year % 4 == 0) { // 检查是否能被4整除
if (year % 100 == 0) { // 如果能被100整除
if (year % 400 == 0) { // 再检查是否能被400整除
return 1; // 能被400整除的是闰年
} else {
return 0; // 否则不是闰年
}
} else { // 否则年份不能被100整除
return 1; // 这样的年份是闰年
}
} else {
return 0; // 不能被4整除的年份肯定不是闰年
}
}
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
if (is_leap_year(year)) {
printf("%d年是闰年。\n", year);
} else {
printf("%d年不是闰年。\n", year);
}
return 0;
}
```
**程序流程图:**
1. 输入年份
2. 分支结构开始,判断年份能否被4整除
- 能被100整除进入下一个分支
- 可否被400整除
- 被400整除返回1(闰年)
- 否则返回0(非闰年)
- 否则(即年份不能被100整除)返回1(闰年)
- 否则(即年份不能被100整除)直接返回1(闰年)
3. 不能被4整除直接返回0(非闰年)
**判定条件及测试用例(条件覆盖):**
1. 条件I: 年份能被4整除
- 测试用例1: 2000(满足400整除,是闰年)
- 测试用例2: 1900(满足4整除但不满足100整除,也是闰年)
2. 条件II: 年份能被4整除但不能被100整除
- 测试用例3: 2004(满足条件,是闰年)
- 测试用例4: 1988(同样满足条件,是闰年)
3. 条件III: 年份不能被4整除
- 测试用例5: 1901(不是闰年)
- 测试用例6: 1700(虽然能被4整除,但不能被100整除,也不是闰年)
这样就涵盖了所有可能的情况,完成了条件覆盖。
阅读全文
相关推荐
















