文章

28

粉丝

82

获赞

5

访问

16.5k

头像
打印日期
我要提问
发布于2024年3月4日 23:21
阅读数 709

打印日期这个题,为啥前面几个测试用例都对,后面三个不对啊,如果不输前面几个,后面三个输出就没有问题

#include
int main()
{
    int m,n;
    int i=1;
    //scanf("%d %d",&m,&n);
    int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    while(scanf("%d %d",&m,&n)!=EOF){
    if((m%4==0&&m%100!=0)||(m%400==0))
    {
        a[2]=29;
    }
    else
    {
        a[2]=28;
    }

        while(n>a[i])
        {
            n=n-a[i];
            i++;
        }
        printf("%d-%02d-%02d\n",m,i,n);

    }
 &n...

登录查看完整内容


登录后发布评论

2 条评论
snake VIP
2024年3月5日 08:22

int i=1;这一行的定义不应该在while前面

应该定义在while里面

遇到多组输入这类题目,需要注意每一次输入都需要把原来的数据重置,否则会影响到后面的计算。

赞(1)

promising : 回复 snake: 好滴,谢谢你,我做出来了

2024年3月5日 09:38