今天的题目:编程实现统计某年某月的天数
例如: 输入:2017.7
输出:31天
先附上我自己想的方法,由于几个功能放一起太繁琐,于是我想把他们分为三个函数,分别来实现这个功能:

#include <stdio.h>void runnian(int* year, int* leap); //函数声明
void print(int month);              //函数声明int main()
{int year, month, leap;scanf ("%d.%d", &year, &month);//输入年月runnian(&year, &leap);//判断是否是闰年if (2 != month)             //判断是否是 2 月,不是则正常输出print(month);               //分 30 天和 31 天输出else                            //如果是 2 月{if(1 == leap)               //闰年 29 天printf ("29天");else                        //非闰年 28 天printf ("28天");}return 0;
}void runnian(int* year, int* leap)  //判断是否是闰年
{if (0 == *year % 4)         //判断能否被4整除{if (0 == *year % 100)       //判断能否被100整除{if (0 == *year % 400)   //判断能否被400整除*leap = 1;          // leap = 1 为闰年else *leap = 0;          // leap = 0 不是闰年}else *leap = 1;}else *leap = 0;
}void print(int month)               //根据月份输出天数
{switch(month){case  1:case  3:case  5:case  7:case  8:case 10:case 12:printf ("31天");break;case  4:case  6:case  9:case 11:printf ("30天");break;default:printf ("不存在的");}}

但是后来看到一个简单的方法,可以用‘与或’来代替‘ if ’语句(即判断闰年的函数),这样多行的代码就可以缩略为一行代码,整个函数就更清爽,附上代码:

#include <stdio.h>int main()
{int year;int month;printf ("请输入");scanf ("%d.%d", &year, &month); //利用scanf输入吃掉输入时的 '.' switch(month){case  1:case  3:case  5:case  7:case  8:case 10:case 12:printf ("31天");break;case  4:case  6:case  9:case 11:printf ("30天");break;case 2:if (0 == year%4 && 0 != year%100|| 0 == year%400)printf ("29天");elseprintf ("28天");break;default:printf ("不存在的");}return 0;
}

李洋疯狂C语言之编程实现统计某年某月份的天数相关推荐

  1. 强化练习2:编程实现统计某年某月份的天数

    口诀: 一三五七八十腊(1,3,5,7,8,10,12),31天永不差, 平年二月28,闰年二月29,其他月份三十天. 程序如下: #include <stdio.h>int main() ...

  2. 李洋疯狂C语言之求素数的方法

    今天课上李洋老师讲到求素数时,讲了一种新的方法,一开始听得我一脸懵逼,但当我理解的时候,眼前一亮,老师的算法省去了不少步骤,话不多说,附上题目:求100到200之间的素数. 输入:无 计算: 求素数 ...

  3. 李洋疯狂C语言之合法帧

    题目: 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来. 提示:帧头和帧尾分别是head和tail 字符串"asdheadhauboisoktail&qu ...

  4. 李洋疯狂C语言之用递归解决李白喝酒问题(二)

    之前用递归求出了多少种情况,如果要打印出所有的结果,就需要一个数组来存放可能的情况: /****************************************************** 题 ...

  5. 李洋疯狂C语言之用递归解决李白喝酒问题(附填空题解法)

    这是14年蓝桥杯的一道填空题 题目:"李白街上走,提壶去买酒,遇店加一倍,见花喝一斗", 途中,遇见5次店,见了10此花,壶中原有2斗酒,最后刚好喝 完酒,要求最后遇见的是花,求可 ...

  6. 李洋疯狂C语言之有关“you are come from shanghai”逆序(二)

    今天将指针和函数全部学完了,之前这题的做法,现在看来有点繁琐,于是乎做了一些修改,下面是新的代码 //you are from shanghai逆序#include <stdio.h> # ...

  7. 李洋疯狂C语言之将”you are come from shanghai ”倒置为”shanghai from come are you”,将句子中的单词位置倒置,而不改变单词内部结构

    题目: 编写一个C函数,将"you are come from shanghai "倒置为"shanghai from come are you",及将句子中的 ...

  8. 李洋疯狂C语言之n个人报数,报到3的退出,最后留在场上的是原来的第几位(约瑟夫环)

    今天老师布置了个题目,约瑟夫环,俗称猴子选大王.n个人报数,报到3的退出,最后留在场上的时原来的第几位 #include <stdio.h>int main() {int i, n, q, ...

  9. 李洋疯狂C语言之break和continue的区别

    1.break (1) 只能在循环体内和switch语句体内使用break语句. (2) 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体. (3) 当break ...

最新文章

  1. H264 NALU 使用PS封装 RTP发送
  2. 华为怎么安装服务器系统版本,服务器怎么安装操作系统版本
  3. React开发(111):写注释的方法
  4. linux课堂笔记(3)
  5. js 把线性的数据结构改成树形结构
  6. 算法工程师面试备战笔记2_一个完整机器学习项目的流程
  7. PHP 使用session实现购物车效果(点击按钮添加数据,根据数据生成列表,删除选中的商品,点击按钮时计算金额)
  8. android listview item字体,改变listview中item选中时文字的颜色
  9. SXF-2021软测实习生笔试
  10. 计算机游戏屏幕中,电脑屏幕上的游戏怎么录制
  11. 针对m3u8视频加密的一些尝试
  12. 烤仔TVのCCW丨存储押金代付
  13. ARTS-第-22-期
  14. Kibana:改善地理位置数据摄入 - 7.10
  15. 江苏大学的计算机,毛启容-江苏大学计算机科学与通信工程学院
  16. 2021-11-12每日刷题打卡
  17. 去掉设备和驱动器的百度网盘
  18. java面向对象的程序编程设计
  19. MPEG4和DivX的问题解答荟萃
  20. 子豪兄-YOLOv3

热门文章

  1. vue mysql webapp_基于Laravel+VueJS实战开发WebAPP
  2. vla点转为lisp点_A股大涨53.70点,收复3400点,下周会继续大反弹吗?
  3. wx轮播图接口学习用json格式_零基础学小程序008----列表和轮播图的实现,小程序解析json数据...
  4. Java0steam_Java学习 - Stream 使用
  5. 面试题之实现1分2分5分组成2角问题
  6. Android入门(一) | Android Studio的配置与使用
  7. 表示数值的字符串(有限状态自动机与搜索)
  8. Shell脚本自动监控docker容器的状态
  9. rabbitmq技术的一些感悟(二)
  10. 算法(17)-leetcode-剑指offer1