KY110 日期差值⭐️难度中等其实简单⭐️类型模拟题目题目链接题解思路1、主要问题在处理输入数据提取出年月日。2、利用好NextDay函数。#define_CRT_SECURE_NO_WARNINGS#includestdio.h#includestring.h#includevector// vector不需要.h#includelist#includeset// // 可以用 set 和 multiset#includeunordered_set// 可以用 unordered_set 和 unordered_multisetusingnamespacestd;voidNextDay(intyear,intmonth,intday){intdayOfMonth[]{0,31,28,31,30,31,30,31,31,30,31,30,31};intisLeap;// 是否是闰年if(year%4000||(year%40year%100!0)){// 闰年二月29天dayOfMonth[2]29;}day;if(daydayOfMonth[month]){day1;month;}if(month12){month1;year;}}intmain(){intdate10;intdate20;while(scanf(%d %d,date1,date2)!EOF){intyear1date1/10000;intyear2date2/10000;intmonth1date1/100%100;intmonth2date2/100%100;intday1date1%100;intday2date2%100;intres1;while(year1!year2||month1!month2||day1!day2){NextDay(year1,month1,day1);res;}printf(%d\n,res);}return0;}答案#includestdio.h#includestring.husingnamespacestd;voidNextDay(intyear,intmonth,intday){// 出现在定义or形参当中 表示引用的意思 出现在其他位置表示取地址// 存储一下 月份和天数的对应关系intdayOfMonth[]{0,31,28,31,30,31,30,31,31,30,31,30,31};intisLeap;// 是否是闰年isLeapyear%4000||year%40year%100!0;if(isLeap){dayOfMonth[2]29;}else{dayOfMonth[2]28;}day;if(daydayOfMonth[month]){day1;month;}if(month12){month1;year;}//printf(NextDay year %d, month %d, day %d\n, year, month, day);}voidSwap(intlhs,intrhs){inttmplhs;lhsrhs;rhstmp;}intmain(){intdate1,date2;while(scanf(%d%d,date1,date2)!EOF){intyear1date1/10000;intyear2date2/10000;intmon1date1/100%100;intmon2date2/100%100;intday1date1%100;intday2date2%100;if(year2year1||year2year1mon2mon1||year2year1mon2mon1day2day1){Swap(year2,year1);Swap(mon2,mon1);Swap(day2,day1);}intdays1;while(1){if(year1year2mon1mon2day1day2){break;}NextDay(year1,mon1,day1);days;}printf(%d\n,days);}return0;}