lpx9393 发表于 2020-2-6 00:10:22

请问大佬们,为什么我这个程序运行出来是空白结果,我检查了不知道错在哪,请指点谢谢

本帖最后由 lpx9393 于 2020-2-6 00:24 编辑

#include <stdio.h>

int main()
{
        int year1, month1, day1;
        int year2, month2, day2;
        long count = 0;
        int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
       
        printf("请输入你的生日(如2001-01-21):");
        scanf("%d-%d-%d", &year1, &month1, &day1);
       
        printf("请输入今天日期(如2020-02-05):");
        scanf("%d-%d-%d", &year2, &month2, &day2);
       
        while(year1 <= year2)
        {
                if(year1 % 400 == 0 || (year1 % 100 != 0 && year1 % 4 == 0))
                {
                        days = 29;
                }
                while(month1 <= 12)
                {
                        while(day1 <= days)
                        {
                                if(year1 == year2 && month1 == month2 && day1 == day2)
                                {
                                        goto END;
                                }
                                        day1++;
                                        count++;
                        }
                }
                day1 = 1;
                month1++;
        }
        month1 = 1;
        year1++;
       
END:printf("你在这个世界总共生活了%d天\n", count);       
       
        return 0;
}


lpx9393 发表于 2020-2-6 00:11:08

本帖最后由 lpx9393 于 2020-2-6 00:12 编辑

谢谢

XiaoPaiShen 发表于 2020-2-6 04:29:51

本帖最后由 XiaoPaiShen 于 2020-2-6 04:31 编辑

不懂c 语言,但感觉应该这样写,你运行一下看看对不对,我不知 c 如何运行
#include <stdio.h>

int main()
{
    int year1, month1, day1;
    int year2, month2, day2;
    long count = 0;
    int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
   
    printf("请输入你的生日(如2001-01-21):");
    scanf("%d-%d-%d", &year1, &month1, &day1);
   
    printf("请输入今天日期(如2020-02-05):");
    scanf("%d-%d-%d", &year2, &month2, &day2);
   
    while(year1 <= year2)
    {
      if(year1 % 400 == 0 || (year1 % 100 != 0 && year1 % 4 == 0))
      { days = 29; }

      while(month1 <= 12)
      {
            while(day1 <= days)
            {
                  if(year1 == year2 && month1 == month2 && day1 == day2)
                  { goto END; }

                  day1++;
                  count++;
            }
            day1 = 1;
            month1++;
      }
      month1 = 1;
      year1++;               
    }
   
   
END:printf("你在这个世界总共生活了%d天\n", count);      
   
    return 0;
}

qiuyouzhi 发表于 2020-2-6 08:39:26

建议用安全的scanf(scanf_s)

召唤风云 发表于 2020-2-6 09:38:13

34,35,37,38行的位置都错了,都应该在前一个while的括号里。

召唤风云 发表于 2020-2-6 09:39:17

是31,32,34,35

lpx9393 发表于 2020-2-6 09:42:12

本帖最后由 lpx9393 于 2020-2-6 09:45 编辑

XiaoPaiShen 发表于 2020-2-6 04:29
不懂c 语言,但感觉应该这样写,你运行一下看看对不对,我不知 c 如何运行

哈哈,谢谢,我找到我错在哪了,大括号太多看乱了,把条件写串了

lpx9393 发表于 2020-2-6 09:44:31

召唤风云 发表于 2020-2-6 09:39
是31,32,34,35

是的,大括号太多看乱了{:10_281:}已经解决啦谢谢
页: [1]
查看完整版本: 请问大佬们,为什么我这个程序运行出来是空白结果,我检查了不知道错在哪,请指点谢谢