有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天
有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd
每組資料輸出一行,即日期差值
示例1
20110412
20110422
11
可建立時間結構體方便操作
先計算相差的月份之間的天數,分情況計算
在分情況計算月份相差天數時,計算日相差的天數
再從年份入手,計算兩個時間的年份中閏年的個數
閏年個數*366,其餘年份*355即為年份相差個數
天數間隔需要加1才能相等於時間間隔 ,例如2012 3 25—2012 2 37 為三天,且題中表明連續的時間,間隔視為2天
輸入是一連串的數字,用控制輸入格式 scanf( "%4d%2d%2d",&year,&month,&day );
以下是**:
#include #include typedef struct t //時間結構體
t;int fun(int n) // 判斷閏年 yes 1 no 0
int main();
scanf("%4d%2d%2d",&x1.y,&x1.m,&x1.d);
scanf("%4d%2d%2d",&x2.y,&x2.m,&x2.d);
if(x1.melse
for(i=x1.y;iif(fun(i))
cnt++;
n+=366*cnt+365*(abs(x2.y-x1.y)-cnt);
printf("%d\n",n+1); //時間間隔與時間天數相差1,且題中連續兩天時間間隔為2
return 0;
}
2021考研複試C上機1
1.二進位制數轉十進位制數程式 include 二進位制轉十進位制c程式 intmain intbin to deci int a return sum 2.十進位制轉二進位制程式 include intmain intdeci to bin int a for j i 1 j 0 j return...
清華考研複試上機 N的階乘
輸入乙個正整數n,輸出n的階乘。正整數n 0 n 1000 輸入可能包括多組資料,對於每一組輸入資料,輸出n的階乘示例1 4 515 24 1201307674368000思路 1000的階乘肯定是超過long long不知道多少位的。所以這道題只能用字串來處理。好在這道題要實現的乘法是乙個大整數乘...
考研複試上機C 前序,中序,後序序列的轉換
string a,b a用來儲存前序序列,b用來儲存中序序列 string a,b a用來儲存後序序列,b用來儲存中序序列 void post int b1,e1,int b2,int e2 b1,e1和b2,e2分別為前序序列和中序序列的開始下標和終止下標 void pre int b1,e1,i...