我是靠谱客的博主 紧张小鸽子,最近开发中收集的这篇文章主要介绍switch语句应用例题目录问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

问题

代码

解析

问题

输入某年某月某日,输出该日是这一年的第多少天。

代码

#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;
}

运行结果是:

请输入年月日并用逗号隔开
2022,10,19
这一天是这一年的第292天
--------------------------------
Process exited after 12.34 seconds with return value 0
请按任意键继续. . .

解析

  该题首先需要判断输入的年份是平年还是闰年,可根据闰年的判断依据即是否能被4整除且不能被100整除或者能被400整除,代码表示为:

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

想要判断一天是一年当中的第几天,就需要把当月之前的月份天数都加起来,然后加上当月的号数由于switch语句是从上往下依次运行,因此第一个case从12开始并依次递减到1会使程序简便。(case1开始递增也可以不过较复杂)switch运行代码表示为:

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;
    }

第一次写博客,如有错误欢迎指出

最后

以上就是紧张小鸽子为你收集整理的switch语句应用例题目录问题的全部内容,希望文章能够帮你解决switch语句应用例题目录问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部