编程题目:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
分析题目:
1. 应该注意要求输入的格式中有"/",所以在写scanf函数时,格式控制字符串应该包含“/”,在输入界面时年月日之间应该用''/''隔开。’
2.要注意2月的天数在闰年与非闰年是不一样的,所以首先要判断输入的年份是否是闰年再计算天数,但润年的二月只比平年的二月多一天,因此我们可以在根据输入的月份按平年计算天数后,在判断是否闰年再加二月多的一天。
3. 根据题目可用swtich判断语句。月份从上到下设计代码。
代码实现
#include<stdio.h>
int main()
{
int a;//年
int b;//月
int c;//日
int number=0;//存放天数;
scanf_s("%d/%d/%d", &a, &b, &c);
switch (b)
{
case 12:number += 31;
case 11:number += 30;
case 10:number += 31;
case 9:number += 30;
case 8:number += 31;
case 7:number += 31;
case 6:number += 30;
case 5:number += 31;
case 4:number += 30;
case 3:number += 31;
case 2:number += 28;//基础天数
//一月直接加上输入的天数就行了
}
number += c;
if (((0 == a % 4 || 0 == a % 400) && 0 != a % 100) && b > 2)//&&的优先级大于||
number++;
printf("%d\n", number);
return 0;
}