if语句的应用,年与月相同的情况下,输出的日期错误,不知道我的逻辑哪错了,求指正
题目要求是输入两个日期比较先后,早的在前晚的在后;如:输入 12/34/8跟11/11/8;输出11/11/8 is earlise than 12/34/8代码如下:
#include <stdio.h>
int main (void)
{
int m1, m2, d1, d2, y1, y2, m, d, y;
printf("Enter frist date (mm/dd/yy): ");
scanf ("%d/%d/%d", &m1, &d1, &y1);
printf("Enter second date (mm/dd/yy): ");
scanf ("%d/%d/%d", &m2, &d2, &y2);
y = y1, m = m1, d = d1;
if (y1 > y2)
y = y1, m = m1, d = d1;
else if (y1 == y2) { //与最后的else结合
if (m1 > m2) {
m = m1, d = d1;
} else if (m1 == m2) {
if (d1 > d2)
d = d1;
else //d1 <= d2
d = d2;
}
else //m1 < m2
m = m2, m2 = m1, d = d2, d2 = d1;
} else { //y1 < y2
y = y2, m = m2, d = d2, y2 = y1, m2 = m1, d2 = d1;
}
printf("%d/%d/%02d is earlise than %d/%d/%02d\n", m2, d2, y2, m, d, y);
return 0;
}