《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
相关文章
|
1月前
|
存储 编译器 C语言
初识C语言——详细入门(系统性学习day4)
初识C语言——详细入门(系统性学习day4)
|
1月前
|
C语言
C语言模块化程序设计
C语言模块化程序设计
21 0
|
1月前
|
存储 C语言 开发者
C语言:圆的基础计算
C语言:圆的基础计算
|
1月前
|
C语言
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
|
1月前
|
编译器 程序员 开发工具
c语言从入门到实战——在系统学习C语言之前所需要了解的知识
C语言是一种通用的、过程式的计算机编程语言,支持结构化编程、词汇变量作用域和递归等功能,其设计提供了低级别的存取权限,并且要求程序员管理所有的内存细节。C语言的基本构成包括数据类型(如整型、浮点型、字符型等)、运算符(如算术运算符、关系运算符、逻辑运算符等)、控制结构(如顺序结构、选择结构、循环结构等)以及函数等。此外,C语言还提供了指针的概念,这是其他许多编程语言所不具备的。指针是一个变量,其值为另一个变量的地址,通过指针可以间接访问和操作内存中的数据。C语言也支持数组、结构体、联合体等复合数据类型,以及文件操作、动态内存分配等高级功能。
49 0
|
9天前
|
存储 编译器 Linux
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
C4.
|
1月前
|
程序员 C语言
C语言循环结构与程序设计
C语言循环结构与程序设计
C4.
23 0
|
19小时前
|
C语言
【C语言】用三种循环语句 计算1到1000之间能被2或3整除的数的总和
【C语言】用三种循环语句 计算1到1000之间能被2或3整除的数的总和
7 0
|
24天前
|
存储 文件存储 C语言
《C语言程序设计》课程设计 -- 火车票票务管理系统
《C语言程序设计》课程设计 -- 火车票票务管理系统
22 1
|
26天前
|
存储 C语言
C语言顺序结构程序设计
C语言顺序结构程序设计
20 0