问题描述:
由用户输入若干年份,最后会附加一个 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; } }}
输出是这个,哪里出问题了啊?
é°å¹´çå¤æè§å为ï¼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);
}
要用单分支做,所以判断条件复杂了点。纯手打,希望你看得懂。
#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();
}
本回答被网友采纳你可以根据闰年的定义,编写以下代码:
#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;
}
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");
}
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;
}本回答被提问者采纳