日期问题(C语言蓝桥杯2017年题目G)

分析:我们输入的AA/BB/CC有三种情况,所以我们编写一个函数,来判断三个数字作为  年  月  日是否合法,合法就输出,不合法就终止,还要查重,如果有相同的时间,就不重复打印,具体看代码注释。

#include <stdio.h>
int num[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年  
int p(int a){
if((a%4==0&&a%100!=0)||a%400==0)return 1;//闰年 
else return 0;//平年	 
	}
int f(int a){//判断年是闰年还是平年 
	if(a>=60)return 1900+a;
	else return 2000+a;
}
void sc(int AA,int BB,int CC){
if(AA<100){//年-月-日  判断 
	   if(p(f(AA==0)))num[2]=28;//判断是平年还是闰年,然后来决定二月的天数 
	   else num[2]=29;//闰年 
		if(BB<=12){
			if(CC<=num[BB]){
				printf("%d-%02d-%02d",f(AA),BB,CC);
				return ;
			}
		}
	}
	return ;
}
int main(){
	int m,n,j,i,AA,BB,CC,s=0;
	scanf("%d%*c%d%*c%d",&AA,&BB,&CC);
	sc(AA,BB,CC);//假如输入的是  年  月  日 
	if(AA!=CC){
		printf("\n");不能重复,所以要进行判断 
	sc(CC,BB,AA);//假如输入的是  月  日  年 
	}
	if(AA!=BB){//不能重复,所以要进行判断 
		printf("\n");
	sc(CC,AA,BB);//假如输入的是  日  月  年
	} 
	return 0;
}

相关推荐

  1. P8651 [ 2017 省 B] 日期问题---洛谷(题解

    2023-12-16 00:08:03       23 阅读
  2. 2013-幸运数(C语言-链表模拟)

    2023-12-16 00:08:03       23 阅读
  3. 题目-回文日期

    2023-12-16 00:08:03       42 阅读
  4. C/C++日期问题

    2023-12-16 00:08:03       20 阅读
  5. 2023C++语言B组的三道题解题解整合】

    2023-12-16 00:08:03       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-16 00:08:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-16 00:08:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-16 00:08:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-16 00:08:03       20 阅读

热门阅读

  1. Android 13 - Media框架(22)- MediaCodec(三)

    2023-12-16 00:08:03       38 阅读
  2. 【数据结构】——查找、散列表简答题模板

    2023-12-16 00:08:03       23 阅读
  3. JIS-CTF

    JIS-CTF

    2023-12-16 00:08:03      36 阅读
  4. LINQ简述

    2023-12-16 00:08:03       41 阅读
  5. 将0x06(16进制)转换为二进制

    2023-12-16 00:08:03       48 阅读
  6. 基于SpringBoot在线电子购物平台网的设计与实现

    2023-12-16 00:08:03       44 阅读
  7. 飞天使-docker知识点2-dockerfile构建镜像

    2023-12-16 00:08:03       36 阅读
  8. Python: any()函数

    2023-12-16 00:08:03       40 阅读