默默地 发表于 2021-10-3 17:35:00

我感觉我考虑了所有情况,但还是错了一个,教教萌新

先上题目
https://z3.ax1x.com/2021/10/03/4LmSIA.png
我的代码
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int yy,mm,dd;
    scanf("%d.%d.%d", &yy, &mm,&dd);
    if (yy >999)
    {
      printf("%d-%02d-%02d", yy, mm, dd);
    }
    else if(yy>=0&&yy<=99)
    {
      printf("19%02d-%02d-%02d", yy, mm, dd);
    }
    else
    {
      printf("%d-%02d-%02d", yy, mm, dd);
    }
    return 0;
}
我已经按照要求分了4位数的、2位数,但结果https://z3.ax1x.com/2021/10/03/4Lm1MT.png

大马强 发表于 2021-10-3 18:53:14

错误有提示吗?
感觉运行起来没啥问题呀

默默地 发表于 2021-10-3 19:06:51

大马强 发表于 2021-10-3 18:53
错误有提示吗?
感觉运行起来没啥问题呀

没有提示{:10_266:}

人造人 发表于 2021-10-3 19:27:55

#include <stdio.h>

int main(void) {
    size_t yy, mm, dd;
    scanf("%lu%*[./:]%lu%*[./:]%lu", &yy, &mm, &dd);
    if(yy < 100) yy += 1900;
    printf("%lu-%.2lu-%.2lu\n", yy, mm, dd);
    return 0;
}

mojun 发表于 2021-10-3 21:06:18

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int yy,mm,dd;
    scanf("%d.%d.%d", &yy, &mm,&dd);
    if (yy >=1900)
    {
      printf("%d-%02d-%02d", yy, mm, dd);
    }
    else
    {
      printf("19%d-%02d-%02d", yy, mm, dd);
    }
    return 0;
}

默默地 发表于 2021-10-4 07:40:09

人造人 发表于 2021-10-3 19:27


还是部分正确

人造人 发表于 2021-10-4 08:07:27

默默地 发表于 2021-10-4 07:40
还是部分正确

这就不知道了,这个刷题网站不说错误的原因吗?

默默地 发表于 2021-10-4 16:05:34

mojun 发表于 2021-10-3 21:06
#include
#include



部分正确

jhq999 发表于 2021-10-4 16:47:00

本帖最后由 jhq999 于 2021-10-4 17:05 编辑

人造人 发表于 2021-10-3 19:27


scanf("%lu%*[./: 年]%lu%*[./: 月]%lu%*[./: 日]", &yy, &mm, &dd);{:5_109:}
或者
scanf("%lu%*c%lu%*c%lu%*c", &yy, &mm, &dd);

jhq999 发表于 2021-10-4 17:56:52

不会还有1、3、5、7、8、10、12月31天,
闰年,
月、日大于0
页: [1]
查看完整版本: 我感觉我考虑了所有情况,但还是错了一个,教教萌新