解題思路:
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; }
沒有留言:
張貼留言