C语言编程问题,如何判断是否为闰年?

问题描述:由用户输入若干年份,最后会附加一个0作为输入结束标志,程序输出这些年份中的闰年。输入:由空格分隔的若干整数(表示年份,范围[-3000,3000]),最后一个是... 问题描述:
由用户输入若干年份,最后会附加一个 0 作为输入结束标志,程序输出这些年份中的闰年。
输入:由空格分隔的若干整数(表示年份,范围[-3000, 3000]),最后一个是 0 输出:由空格分隔的若干整数(闰年年份)
示例一 [输入] 1900 1990 1991 1992 1993 1994 1995 1996 1997 1998 2000 0 [输出] 1992 1996 2000

我编的程序:
#include<stdio.h>void main(){ int n; while (n!=0) { scanf("%d",&n); if(n%4==0) { printf("%d",n); } else { continue; } }}
输出是这个,哪里出问题了啊?
展开
 我来答
风若远去何人留
推荐于2017-09-04 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部

闰年的判断规则为,4年一闰,百年不闰,四百年再闰。

对于任意的年份值year,写成C语言的判断格式为

year%400 == 0 || (year %4 == 0 && year %100 != 0)

只要符合这个条件的year值,均为闰年。

封装成函数可以写作:

int is_leap_year(int year)
{
    return year%400 == 0 || (year %4 == 0 && year %100 != 0);
}
教育小百科达人
2018-03-30 · TA获得超过156万个赞
知道大有可为答主
回答量:8828
采纳率:99%
帮助的人:479万
展开全部

要用单分支做,所以判断条件复杂了点。纯手打,希望你看得懂。

#include<stdio.h>

void main()

{

int year;

printf("Enter Year:");

scanf("%d",&year);

if((year%100==0&&year%400==0)||(year%100!=0&&year%4==0))

printf("It is leap year");

else

printf("It is common year");

getch();

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友69a7620
2019-06-03 · TA获得超过376个赞
知道答主
回答量:110
采纳率:66%
帮助的人:5.3万
展开全部

你可以根据闰年的定义,编写以下代码:

#include <stdio.h>
int main()
{
    int a[10]; // 定义长度为10的数组,用于存放用户输入的年份
    for(int i = 0;i < 10;i++)
    {
        scanf("%d",&a[i]);
    } // 用for循环读入输入的10个年份
    for(int x = 0;x < 10;x++)
    {
        if(a[x] % 4 == 0 && a[x] % 100 != 0 || a[x] % 400 == 0)
            printf("%d  ",a[x]);
    } // 逐个检查数组中的年份,如满足闰年的条件则将其输出
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2014-11-08 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6497万
展开全部
#include<stdio.h>
void main()
{
int n;
while (1) //n没赋值前,无法判断
{
scanf("%d",&n);
if ( n==0 ) //输入0结束
break;
if(n%4==0 && n%100!=0 || n%400==0) //闰年检查四年一闰,百年去一,四百年再闰
{
printf("%d ",n); //加个空格
}
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
XGY94525
2014-11-08 · TA获得超过114个赞
知道答主
回答量:36
采纳率:0%
帮助的人:34.9万
展开全部
#include<stdio.h>
int main(void)
{
int n;
while (scanf("%d",&n),n!=0)
{
if(n%4==0&&n%100!=0||n%400==0) //判断是否为闰年
{
printf("%d ",n);
}
else
{
continue;
}
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式