c语言编程:给t个起始年份,分别求从这一年起第n个闰年是哪一年,我编的问题有些问题,求解答

补充,若起始年份是闰年,则这一年算第一个闰年。
程序如下。求指点。
#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;
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网