#要求:”用户输入一个日期(格式:年 月 日),判断日期是否合法。“是”则输出“合法日期”,“否”则输出“非法日期”
#涉及到Switch语句、if else语句的使用。bool类型,即为布尔型,变量定义。
条件:
1.如果年份能被400整除,那么是闰年;
2.如果年份能被100整除但不能被400整除,那么是平年;
3.如果年份能被4整除但不能被100整除,那么是闰年;
4.其他的情况都是平年。
注:平年:2月有28天;闰年:2月有29天
以下是参考代码:
#include <stdio.h>
#include <stdbool.h>
bool isLeapYear(int year)
{
//(能被400整除,是润年)或者(能被4整除但不能被100整除,是闰年)
return (year%400==0)||(year%4==0&&year%100!=0);
}
int main()
{
int year,month,day; //定义变量
printf("输入一个日期(格式:年 月 日):");
scanf("%d%d%d",&year,&month,&day); //读取输入的年月日
switch(month)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12: //选择输入的1、3、5、7、8、10、12月份的条件下
if(day>=1&&day<=31) //判断这个月份是否为1~31天内
{
printf("合法日期\n"); //输出结果到屏幕上
}
else
{
printf("非法日期\n");
}
break; //跳出循环体之外
case 4: case 6: case 9: case 11: //选择输入的4、6、9、11月份的条件下
if(day>=1&&day<=30) //判断这个月份是否为1~30天内
{
printf("合法日期\n"); //输出结果到屏幕上
}
else
{
printf("非法日期\n");
}
break; //跳出循环体之外
case 2: //选择输入2月份的条件下
if(isLeapYear(year)) //判断是否满足闰年的条件
{
if(day>=1&&day<=29) //判断天数是否为1~29天(闰年的二月份为29天)
{
printf("合法日期\n"); //输出结果到屏幕上
}
else
{
printf("非法日期\n");
}
}
else
{
if(day>=1&&day<=28) //判断天数是否为1~28天(闰年的二月份为28天)
{
printf("合法日期\n"); //输出结果到屏幕上
}
else
{
printf("非法日期\n");
}
}
break; //跳出循环体之外
default: //默认输入错误
printf("Error\n");
break; //跳出循环体之外
}
return 0;
}
标签:case,编写程序,C语言,日期,&&,400,整除,day
From: https://blog.csdn.net/2301_80965364/article/details/139792708