输入一个 1800~2800 之间的整数作为年份,判断该年份是否为闰
年。年份符合下列条件之一者为闰年:
① 能被 4 整除且不能被 100 整除;
② 能被 400 整除。
#include
main()
{
int year,flag;
printf("请输入年份:");
【1】;
【2】
printf("年份超出范围。");
else
{
if(year%4==0)
{
【3】
{
if(year%400==0)
flag=1;
【4】
flag=0;
}
else
【5】;
}
else
【6】;
【7】
printf("%d 是闰年。\n",year);
else
printf("%d 不是闰年。\n",year);
}
}
按题目填空如下,供参考:
#include <stdio.h>
int main()
{
int year, flag;
printf("请输入年份:");
scanf("%d", &year); //【1】;
if (year < 1800 || year>2800)//【2】
printf("年份超出范围。");
else
{
if (year % 4 == 0)
{
if (year % 100 == 0)//【3】
{
if (year % 400 == 0)
flag = 1;
else //【4】
flag = 0;
}
else
flag = 1;//【5】;
}
else
flag = 0; //【6】;
if (flag) //【7】
printf("%d 是闰年。\n", year);
else
printf("%d 不是闰年。\n", year);
}
}
该回答引用GPTᴼᴾᴱᴺᴬᴵ
以下是修改后的代码:
#include <stdio.h>
int main() {
int year, flag = 0;
printf("请输入年份:");
scanf("%d", &year);
if (year < 1800 || year > 2800) {
printf("年份超出范围。");
} else {
if (year % 4 == 0) {
if (year % 100 != 0) {
flag = 1;
} else {
if (year % 400 == 0) {
flag = 1;
}
}
}
if (flag) {
printf("%d 是闰年。\n", year);
} else {
printf("%d 不是闰年。\n", year);
}
}
return 0;
}
修改说明:
该回答引用ChatGPT
完整的 C 代码实现,其中用到了 if-else 结构和 scanf 函数来获取用户输入的年份:
#include <stdio.h>
int main() {
int year, flag;
printf("请输入年份:");
scanf("%d", &year);
if (year < 1800 || year > 2800) {
printf("年份超出范围。");
} else {
if (year % 4 == 0) {
if (year % 100 != 0) {
flag = 1;
} else {
if (year % 400 == 0) {
flag = 1;
} else {
flag = 0;
}
}
} else {
flag = 0;
}
if (flag == 1) {
printf("%d 是闰年。\n", year);
} else {
printf("%d 不是闰年。\n", year);
}
}
return 0;
}
解析如下:
1、通过 scanf 函数获取用户输入的年份,存储在 year 变量中。
2、如果用户输入的年份不在 1800~2800 范围内,则输出错误信息,程序结束。
3、如果年份能被 4 整除,执行第 4 步;否则执行第 6 步。
4、如果年份能被 100 整除,则执行第 5 步;否则说明是闰年,标记为 flag = 1。
5、如果年份能被 400 整除,则说明是闰年,标记为 flag = 1;否则说明不是闰年,标记为 flag = 0。
6、如果年份不能被 4 整除,则说明不是闰年,标记为 flag = 0。
7、根据标记 flag 输出判断结果。
#include <stdio.h>
int main()
{
int year, flag = 0;
printf("请输入年份:");
scanf("%d", &year); // 1. 接收用户输入的年份
if (year < 0 || year > 3000) // 2. 检查年份是否在有效范围内
{
printf("年份超出范围。\n");
}
else
{
if (year % 4 == 0) // 3. 检查能否被4整除
{
if (year % 100 == 0) // 4. 检查能否被100整除
{
if (year % 400 == 0) // 5. 检查能否被400整除
{
flag = 1;
}
else
{
flag = 0;
}
}
else
{
flag = 1;
}
}
else
{
flag = 0;
}
if (flag) // 6. 根据flag的值判断是否为闰年
{
printf("%d 是闰年。\n", year);
}
else
{
printf("%d 不是闰年。\n", year);
}
}
return 0;
}