#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"< }*/
#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;
}
前面的似乎都没有多组测试数据~~~ 也没有将负数年份和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;
}
}
}
#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");
}
}
有点忙,剩下的自己修改一下。
#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");
}
}