目录
问题
代码
解析
问题
输入某年某月某日,输出该日是这一年的第多少天。
代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#include<stdio.h> int main() { int day, month, year, s = 0; printf("请输入年月日并用逗号隔开n"); scanf("%d,%d,%d", &year, &month, &day); switch (month) { case 12:s += 30; case 11:s += 31; case 10:s += 30; case 9:s += 31; case 8:s += 31; case 7:s += 30; case 6:s += 31; case 5:s += 30; case 4:s += 31; case 3:s += 28; case 2:s += 31; case 1:s += day;break; } if (((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) && (month > 2)) //判断是不是闰年 s++; printf("这一天是这一年的第%d天", s); return 0; }
运行结果是:
复制代码
1
2
3
4
5
6请输入年月日并用逗号隔开 2022,10,19 这一天是这一年的第292天 -------------------------------- Process exited after 12.34 seconds with return value 0 请按任意键继续. . .
解析
该题首先需要判断输入的年份是平年还是闰年,可根据闰年的判断依据即是否能被4整除且不能被100整除或者能被400整除,代码表示为:
复制代码
1(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
想要判断一天是一年当中的第几天,就需要把当月之前的月份天数都加起来,然后加上当月的号数由于switch语句是从上往下依次运行,因此第一个case从12开始并依次递减到1会使程序简便。(case1开始递增也可以不过较复杂)switch运行代码表示为:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14switch (month) { case 12:s += 30; case 11:s += 31; case 10:s += 30; case 9:s += 31; case 8:s += 31; case 7:s += 30; case 6:s += 31; case 5:s += 30; case 4:s += 31; case 3:s += 28; case 2:s += 31; case 1:s += day;break; }
第一次写博客,如有错误欢迎指出
最后
以上就是紧张小鸽子最近收集整理的关于switch语句应用例题目录问题的全部内容,更多相关switch语句应用例题目录问题内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复