设甲乙两人同年出生,但月日不同。请计算甲乙的年龄差的绝对值。例如输入1997 2 27 3 10(表明甲乙出生在1997年,甲出生在2月27日,乙出生在3 月10日),则输出11(甲乙相差11天)
思路:
1、分别计算甲乙的生日是该年的第多少天(分别用n1,n2表示)。计算该年的多少天,可通过函数调用实现;
2、年龄差绝对值计算
#include<stdio.h>
int fun(int y,int m,int d)
{int s=0;
for(int i=1;i<=m-1;i++)
{switch(i)
{case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:s+=31;
case 4:
case 6:
case 9:
case 11:s+=30;
case 2:if(y%4==0&&y%100!=0||y%400==0) s+=29;
else s+=28;
}
}
s+=d;
return s;
}
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
void main()
{
int y,m1,d1,m2,d2,n1,n2;
scanf("%d%d%d",&y,&m1,&d1);
scanf("%d%d",&m2,&d2);
n1=fun(y,m1,d1);
n2=fun(y,m2,d2);
if(n1>=n2)
printf("%d\n",n1-n2);
else
printf("%d\n",n2-n1);
}
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
这个代码是我写的 总会有一个隐藏的测试用例结果错误 不知道代码哪有缺陷 请大神赐教!