解題思路:
date=(y1-y2)-(m1<m2)-(m1==m2&&d2>d1);1.從(y1-y2)可以得知大概的年齡。而可能因為最新的天數未滿一年,需要減1,所以繼續判斷。
2.需要減一有兩種情況:第一是(m2>m1),第二是當同月份時(d2>d1)
3.所以把這兩個情況減掉即可
程式碼:
#include <stdio.h>
int main()
{
int t;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
int d1,m1,y1,d2,m2,y2,date=0;
scanf("%d/%d/%d",&d1,&m1,&y1);
scanf("%d/%d/%d",&d2,&m2,&y2);
date=(y1-y2)-(m1<m2)-(m1==m2&&d2>d1);
printf("Case #%d: ",i);
if(date<0)
printf("Invalid birth date\n");
else if(date>130)
printf("Check birth date\n");
else
printf("%d\n",date);
}
return 0;
}
沒有留言:
張貼留言