1、switch 语句编程
根据输入的年份判断是否为闰年,根据输入的月份判断这月有多少天
闰年的定义:
- 普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);
- 世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
1.1、基础版代码:
#include <stdio.h>
int main()
{
int year, month, flag = 0;
printf("请输入年份和月份,以空格间隔:!\n");
scanf("%d %d", &year, &month);
if( ( year % 4 ==0 && year % 100 != 0 ) || year % 400 ==0)
{
flag = 1;
printf("您所输入的年份是闰年\n");
}
else
{
flag = 0;
printf("您所输入的年龄是平年!!\n");
}
switch(month)
{
case 1:
printf("您所输入的是一月共31天\n");
break;
case 2:
if(flag == 1)
printf("您所输入的是二月共29天\n");
else
printf("您所输入的是二月共28天\n");
break;
case 3:
printf("您所输入的是三月共31天\n");
break;
case 4:
printf("您所输入的是四月共30天\n");
break;
case 5:
printf("您所输入的是五月共31天\n");
break;
case 6:
printf("您所输入的是六月共30天\n");
break;
case 7:
printf("您所输入的是七月共31天\n");
break;
case 8:
printf("您所输入的是八月共31天\n");
break;
case 9:
printf("您所输入的是九月共30天\n");
break;
case 10:
printf("您所输入的是十月共31天\n");
break;
case 11:
printf("您所输入的是十一月共30天\n");
break;
case 12:
printf("您所输入的是十二月共31天\n");
break;
}
return 0;
}
1.2、改良版代码:
#include<stdio.h>
int main() {
int year, 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) {
case 4: case 6: case 9: case 11: printf("%d月有%d天。", month, 30); break;
case 2: printf("%d月有%d天。", month, 27+ex); break;
default: printf("%d月有%d天。", month, 31);
}
}
}
每日一更!
公众号、CSDN等博客:小鹅编程笔记
日更较慢有需要完整笔记请私我,C/C++/数据结构-算法/单片机51-STM32-GD32-ESP32/嵌入式/Linux操作系统/uboot/Linux内核-驱动-应用/硬件入门-PCB-layout/Python/后期小程序和机器学习!
268

被折叠的 条评论
为什么被折叠?



