编程实现统计某年某月份的天数

#include <stdio.h>
int main()
{
	int a,b;
	char c;
	printf("Please enter the month to query, format such as: 2017.7.\n");
	scanf("%d%c%d", &a, &c, &b);
	
	switch (b)
	{
		case 2 :
			if(a % 4 != 0 ||(a % 4 ==0 && a % 400 != 0))
			{
				printf("There are 28 days in this month.\n");
				break;
			}
			else
			{
				printf("There are 29 days in this month.\n");
				break;	
			}
		case 4 :
		case 6 :
		case 9 :
		case 11 :
			printf("There are 30 days in this month.\n");
			break;
		case 1 :
		case 3 :
		case 5 :
		case 7 :
		case 8 :
		case 10 :
		case 12 :
			printf("There are 31 days in this month.\n");
			break;
		default :
			printf("Sorry, you input errors.\n");
			break;
			
	}
	
	return 0;
}

在学了switch之后,这种问题的实现很简单。

首先,一年有12个月,这十二个月又分为小月,大月还有一个特殊的二月。

我们先对这个特殊的二月进行讨论,二月两个情况,闰年有29天,非闰年有28天。

闰年的情况是年数可以被4整除不能被100整除,或者可以被400整除。

然后对小月进行判断,之后对大月进行判断。

### C语言常见编程考试题目 以下是常见的C语言编程考试题目,涵盖了基础到中级难度的内容: #### 字符串操作 1. **字符串反转** 实现一个函数 `reverse_string` 将输入的字符串反转并输出。[^1] ```c void reverse_string(char *str) { int len = strlen(str); for(int i = 0; i < len / 2; i++) { char temp = str[i]; str[i] = str[len - i - 1]; str[len - i - 1] = temp; } } ``` 2. **统计字符串中的单词数量** 输入一段文字,计算其中有多少个单词。[^3] --- #### 数组处理 3. **选择法排序** 使用选择法对整型数组进行从小到大的排序。 4. **判断数组是否有序** 判断给定的数组是否已经按升序排列。如果已排序返回 `true`,否则返回 `false`。[^2] ```c bool is_sorted(int arr[], int size) { for(int i = 0; i < size - 1; i++) { if(arr[i] > arr[i + 1]) return false; } return true; } ``` 5. **求数组的最大值和最小值** 遍历数组找到其最大值和最小值,并将其存储在一个结构体中返回。 --- #### 循环与条件语句 6. **打印空心正方形** 根据用户输入的边长 `n` 打印一个由星号组成的空心正方形。 7. **判断闰年** 用户输入年,程序判断该年是否为闰年。 8. **求某年某月天数** 用户输入年月份,程序输出对应天数。考虑闰年的特殊情况。 --- #### 函数设计 9. **递归实现字符串长度** 不使用标准库函数 `strlen()`,通过递归方法计算字符串长度。 ```c int recursive_strlen(const char *str) { if(*str == '\0') return 0; return 1 + recursive_strlen(str + 1); } ``` 10. **素数判断** 编写一个函数 `is_prime` 来判断某个整数是否为素数。 --- #### 数据结构初步 11. **冒泡排序学生总成绩** 定义一个结构体表示学生的姓名、各科分数以及总分,按照总分对学生数据进行降序排序。 12. **单链表基本操作** 创建一个简单的单链表,支持节点的插入、删除和遍历功能。 --- #### 特殊算法题 13. **水仙花数** 输出所有的三位水仙花数(即各位数字立方之和等于原数本身的数)。 14. **杨辉三角形** 按照指定层数打印杨辉三角形。 15. **汉诺塔问题** 解决经典的汉诺塔问题,给出移动步骤。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值