日期问题(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;
}
相关推荐
jghhh0139 分钟前
传递对准MATLAB仿真程序
开发语言·matlab
编程武士2 小时前
Python 各版本主要变化速览
开发语言·python
hqwest2 小时前
码上通QT实战29--系统设置04-用户操作管理
开发语言·qt·模态窗体·addbindvalue·bindvalue
ALzc2 小时前
深度剖析EtherCAT FOE功能:ARM固件升级的数据传输与状态机实现
c语言·stm32·ethercat·foe
专注于大数据技术栈2 小时前
java学习--LinkedHashSet
java·开发语言·学习
这个图像胖嘟嘟2 小时前
前端开发的基本运行环境配置
开发语言·javascript·vue.js·react.js·typescript·npm·node.js
星竹晨L3 小时前
【C++内存安全管理】智能指针的使用和原理
开发语言·c++
宵时待雨3 小时前
数据结构(初阶)笔记归纳3:顺序表的应用
c语言·开发语言·数据结构·笔记·算法
智者知已应修善业3 小时前
【C语言 dfs算法 十四届蓝桥杯 D飞机降落问题】2024-4-12
c语言·c++·经验分享·笔记·算法·蓝桥杯·深度优先
旺仔小拳头..3 小时前
Java ---变量、常量、类型转换、默认值、重载、标识符、输入输出、访问修饰符、泛型、迭代器
java·开发语言·python