补充,若起始年份是闰年,则这一年算第一个闰年。
程序如下。求指点。
#include<stdio.h>
int main()
{
int T,N,Y,i,j,x;
int leap(int x, int y);
scanf("%d",&T);
for (i=0;i<=T;i++)
{
scanf("%d %d",&Y,&N);
x=leap(Y,N);
printf("%d\n",x);
}
return 0;
}
int leap(int Y, int N)
{
int i;
for (i=0;Y%4==0 && Y%100!=0;i++)
{ Y=Y+i;
if (Y%400==0)
break ;
}
Y+=(N-1)*4;
return Y;
}
你对闰年的判断条件有点问题,而且找到一个闰年之后不能简单的4*(n-1)计算第N个,要老老实实继续往下找。代码实现如下:
#include<stdio.h>
int leap(int Y, int N)
{
int i=Y;
while(1) {
if (((i%4==0)&&(i%100!=0)) || (i%400==0)){
N --;/* 找到一个闰年N减一,当N为0时表示已经找到了第N个 */
if (N <= 0) {
return i;
}
}
i ++;
}
}
int main()
{
int T,N,Y,i,j,x;
int leap(int x, int y);
scanf("%d",&T);
for (i=0;i<=T;i++)
{
scanf("%d %d",&Y,&N);
x = leap(Y, N);
printf("%d\n",x);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考