判断日期是否符合格式

描述

我们知道一年有12个月,每个月最多有31天,年有平年和闰年之分,本题目要求如果输入一个日期,程序需要判断用户输入的日期是否正确。

输入

输入多组数据,请处理到文件结束。 用户输入是三个数字,分别表示年,月和日。 例如 2007 10 21 ,表示2007年10月21日,这个输入经过判断是正确的。又例如输入 1993 11 38 ,这个输入经过判断是错误的,因为日期不能超过31天。

输出

对于每组数据输出结果。 程序的输出分为两种,1或者0。1表示输入正确,0表示输入错误。

解题思路:1,先判断n的范围,int是否存得下,答案是NO,so 用long long 

                   2,因为是多组输入,所以用while(scanf()!=EOF)

                   3,先判断y与x的值、范围;

                   4,之后判断是平年还是闰年;

                    5,再判断r的值;最后记得printf("\n");

                   

#include<stdio.h>
int main(){
	long long n;
	int y,r;
	while(scanf("%lld%d%d",&n,&y,&r)!=EOF){
		 if(y>=1&&r>=1&&y<=12&&r<=31)
    {
		if(y==1||y==3||y==5||y==7||y==8||y==10||y==12){
			if(r<=31)
				printf("1");
			else printf("0");
		}else if(y!=2){
			if(r<=30)
			   printf("1"); 
			   else printf("0");
			}
		else  {
		if(n%400==0||(n%4==0&&n%100!=0)){
		
				if(r<=29)
					printf("1");
					else printf("0");}
				else if(r<=28)
					printf("1");
					else printf("0");
				}
			}
			else printf("0");
			printf("\n");
			}
			
		
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值