C语言-判断闰年 要用switch语句 请教高人

2025-02-24 14:52:49
推荐回答(5个)
回答1:

#include

intmain(){

intyear,month,ex;

printf("请输入年份及月份(空格分隔):");

scanf("%d%d",&year,&month);

if(month<1||month>12){

printf("输入有误!!");

}else{

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

ex=1;

printf("%d年为闰年。\n",year);

}else{

ex=0;

printf("%d年不为闰年。\n",year);

}

switch(month){

case4:case6:case9:case11:printf("%d月有%d天。\n",month,30);break;

case2:printf("%d月有%d天。\n",month,28+ex);break;

default:printf("%d月有%d天。\n",month,31);

}

}

}

扩展资料

C++判断语句用switch语句完成具体某月的天数的计算(结合闰年的计算)

if(n==0)//用if语句做分支结构

{

cout<<"n=0"<

}

elseif(n<0)

{

cout<<"n<0"<

}

elseif(n>0)

{

cout<<"n>0"<

}*/

回答2:

#include "stdafx.h" 
#include "Stdio.h" 
#include "process.h" 
bool isLeap(int year); //判断是否闰年函数
int main()
{
int iyear = 0;
printf("请输入年份并回车::\n");
scanf("%d", &iyear);
if (isLeap(iyear))
{
printf("闰年!\n");
}
else
{
printf("非闰年!\n");
}
system("pause");
return 1;
}
bool isLeap(int year)
{
//根据闰年规则判断是否闰年
if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0))
return true;
else
return false;
}

回答3:

前面的似乎都没有多组测试数据~~~ 也没有将负数年份和0年份分开处理

下面是我写的:

====================================================================

#include

void main()

{
int year[100],flag=0,i=0,j=0;

printf("请输入您要测试的年份(以0结束输入):"); //提示输入多组数据

do{ //用do while循环接收输入
scanf("%d",&year[i]);
i++;
}while(year[i-1]!=0);

for(j=0;j<=i;j++) //用for循环分别对每个年份处理
{
flag=year[j]<0?-1:0;
switch(flag)
{
case 1:break; //年份为负不处理

case 0:

if(year[j]==0) return; //年份为0 结束程序

else if(year[j]%400==0||year[j]%4==0&&year[j]%100!=0) printf ("%d年是润年,这一年有366天\n",year[j]);

else printf("%d年不是润年,这一年有365天\n",year[j]);

break;
}

}

}

回答4:

#include "stdio.h"
main()
{int a,year;
scanf("%d",&year);
if(year<=0)
break;
else
a=year%100&&year%400;
if(a)
break;
else
a=year%4;
switch(a)
{case0:printf("366\n");
case1:printf("365\n");
}
}
有点忙,剩下的自己修改一下。

回答5:

#include "stdio.h"
void main(){
int year,flag;
scanf("%d",&year);
flag=year>0?1:0;
switch(flag){
case 0:return;
case 1:if(year%400==0||year%4==0&&year%100!=0) printf("366\n");
else printf("355\n");
}

}