开发者社区> 华章计算机> 正文

《C语言程序设计》一3.4 案例学习——计算一年中某月份的总天数

简介: 本节书摘来自华章出版社《C语言程序设计》一 书中的第3章,第3.4节,作者:赵宏 陈旭东 马迪芳,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
+关注继续查看

3.4 案例学习——计算一年中某月份的总天数

【例3-8】 从键盘上输入年和月份,打印出相应年中某月份的总天数。
1.问题分析
这个问题要求从键盘上输入年份和月份,根据年份和月份计算出当月的总天数。年份和月份要考虑输入是否合法,并且二月份要考虑是否是闰年,如果是闰年则是29天,否则是28天。
2.算法设计

显示一个请求用户输入年份和月份的提示
接收用户的输入
假如年份和月份不合法
输出提示信息
否则

假如月份是1,3,5,7,8,10,12,则是31天;
假如月份是4,6,9,11,则是30天;
   假如是2月份,则需要判断是否是闰年,如果是闰年则是29天,否则是28天;

3.程序实现

/*
程序名:prg3-8.c
功能:从键盘上输入年份和月份,打印出相应年中某月份的总天数
*/

#include<stdio.h>

int main()
{
  int year,month,day;
 
  printf("Enter year and month ");
  scanf("%d %d", &year, &month);
  
  if(year < 1 || month > 12 || month < 1)             //判断非法年份或月份
  {
      printf("input a wrong year or month ");
  }
  else
  {  
     switch(month)
     {

        case 1: case 3: case 5: case 7: case 8: case 10: case 12:  
            day = 31;                          //31天的月份
            break;
        case 4: case 6: case 9: case 11:  
            day = 30;                            //30天的月份
            break;
        case 2:  
           if((year % 4 == 0 && year % 100 != 0) || year % 400 ==0 )//判断是不是闰年
               day = 29;
           else
               day = 28;
     }

  printf("%d year %d month has %d days",year,month,day);
  }  

  return 0;
}

程序prg3-8.c根据不同的月份来决定天数,2月份要判断是否为闰年,如果是闰年,则2月份有29天,否则是28天。
4.测试结果
测试应包含各种情况的数值输入,下面是4种情况的测试结果:

Enter year and month 2004,2
2004 year 2 month has 29 days

Enter year and month 2011,2
2011 year 2 month has 28 days

Enter year and month 2011,3
2011 year 3 month has 31 days

Enter year and month 2011,4
2011 year 4 month has 30 days

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《算法设计编程实验:大学程序设计课程与竞赛训练教材》——导读
全书以知识单元为基本构件,各单元既保持循序渐进的顺序又相对独立,既可拆卸重组、各取所需,又可在此基础上推广或创新,便于各学校按照不同的层次要求组织教学和培训活动。
771 0
深入理解C语言中的指向函数的指针和返回指针的函数
#include#include/** 返回指针的函数和指向函数的指针*//** 定义一个函数,返回一个void指针,在C语言中,void指针可以* 指向任何类型*/void *func(){    /*     * 一种很容易犯的错误,将局部变量的地址返回     */    int m;    printf("define as void *func()\n");    return &m;}/** 声明一个指向函数的指针,指向返回类型为void指针的函数*/void *(*pfunc)();/*void (*pfun)();* 声明一个函数,指向一个返回void的函数。
636 0
带你读《Java程序设计与计算思维》之二:认识数据处理与表达式
程序设计的过程就是一种计算思维的表现,《Java程序设计与计算思维》结合Java程序设计语言的教学特点,遵循计算思维的方式,图解重要概念,通过大量的范例程序讲解和上机编程实践来指导读者活用Java程序语法,兼顾培养计算思维和学习面向对象程序设计的双目标。
576 0
《Java 7程序设计入门经典》一2.11 速记赋值运算符
本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第2章,第2.11节,作者(美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1170 0
带你读《Java程序设计与计算思维》之一:计算思维与Java设计初步体验
程序设计的过程就是一种计算思维的表现,《Java程序设计与计算思维》结合Java程序设计语言的教学特点,遵循计算思维的方式,图解重要概念,通过大量的范例程序讲解和上机编程实践来指导读者活用Java程序语法,兼顾培养计算思维和学习面向对象程序设计的双目标。
961 0
《Java 7程序设计入门经典》一2.7 算术运算符
本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第2章,第2.7节,作者(美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1091 0
王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute
十年前,阿里云拉开国内云计算发展的序幕,而作为阿里云的创始人,王坚不仅仅为企业带来了一朵全球前三的云,还打造了一个全球顶级的EB级大数据计算平台MaxCompute。
3242 0
C语言算法设计之奇数魔方阵
C语言算法设计之奇数魔方阵
1345 0
《Java 7程序设计入门经典》一2.10 赋值运算符
本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第2章,第2.10节,作者(美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看
901 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载