鱼C论坛

 找回密码
 立即注册
查看: 1890|回复: 7

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

[复制链接]
发表于 2020-2-6 00:10:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 lpx9393 于 2020-2-6 00:24 编辑
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int year1, month1, day1;
  5.         int year2, month2, day2;
  6.         long count = 0;
  7.         int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  8.        
  9.         printf("请输入你的生日(如2001-01-21):");
  10.         scanf("%d-%d-%d", &year1, &month1, &day1);
  11.        
  12.         printf("请输入今天日期(如2020-02-05):");
  13.         scanf("%d-%d-%d", &year2, &month2, &day2);
  14.        
  15.         while(year1 <= year2)
  16.         {
  17.                 if(year1 % 400 == 0 || (year1 % 100 != 0 && year1 % 4 == 0))
  18.                 {
  19.                         days[1] = 29;
  20.                 }
  21.                 while(month1 <= 12)
  22.                 {
  23.                         while(day1 <= days[month1 - 1])
  24.                         {
  25.                                 if(year1 == year2 && month1 == month2 && day1 == day2)
  26.                                 {
  27.                                         goto END;
  28.                                 }
  29.                                         day1++;
  30.                                         count++;
  31.                         }
  32.                 }
  33.                 day1 = 1;
  34.                 month1++;
  35.         }
  36.         month1 = 1;
  37.         year1++;
  38.        
  39. END:printf("你在这个世界总共生活了%d天\n", count);       
  40.        
  41.         return 0;
  42. }
复制代码



最佳答案
2020-2-6 04:29:51
本帖最后由 XiaoPaiShen 于 2020-2-6 04:31 编辑

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

  2. int main()
  3. {
  4.     int year1, month1, day1;
  5.     int year2, month2, day2;
  6.     long count = 0;
  7.     int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  8.    
  9.     printf("请输入你的生日(如2001-01-21):");
  10.     scanf("%d-%d-%d", &year1, &month1, &day1);
  11.    
  12.     printf("请输入今天日期(如2020-02-05):");
  13.     scanf("%d-%d-%d", &year2, &month2, &day2);
  14.    
  15.     while(year1 <= year2)
  16.     {
  17.         if(year1 % 400 == 0 || (year1 % 100 != 0 && year1 % 4 == 0))
  18.         { days[1] = 29; }

  19.         while(month1 <= 12)
  20.         {
  21.             while(day1 <= days[month1 - 1])
  22.             {
  23.                     if(year1 == year2 && month1 == month2 && day1 == day2)
  24.                     { goto END; }

  25.                     day1++;
  26.                     count++;
  27.             }
  28.             day1 = 1;
  29.             month1++;
  30.         }
  31.         month1 = 1;
  32.         year1++;                 
  33.     }
  34.    
  35.    
  36. END:printf("你在这个世界总共生活了%d天\n", count);        
  37.    
  38.     return 0;
  39. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-6 00:11:08 | 显示全部楼层
本帖最后由 lpx9393 于 2020-2-6 00:12 编辑

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-6 04:29:51 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +3 鱼币

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

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

  2. int main()
  3. {
  4.     int year1, month1, day1;
  5.     int year2, month2, day2;
  6.     long count = 0;
  7.     int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  8.    
  9.     printf("请输入你的生日(如2001-01-21):");
  10.     scanf("%d-%d-%d", &year1, &month1, &day1);
  11.    
  12.     printf("请输入今天日期(如2020-02-05):");
  13.     scanf("%d-%d-%d", &year2, &month2, &day2);
  14.    
  15.     while(year1 <= year2)
  16.     {
  17.         if(year1 % 400 == 0 || (year1 % 100 != 0 && year1 % 4 == 0))
  18.         { days[1] = 29; }

  19.         while(month1 <= 12)
  20.         {
  21.             while(day1 <= days[month1 - 1])
  22.             {
  23.                     if(year1 == year2 && month1 == month2 && day1 == day2)
  24.                     { goto END; }

  25.                     day1++;
  26.                     count++;
  27.             }
  28.             day1 = 1;
  29.             month1++;
  30.         }
  31.         month1 = 1;
  32.         year1++;                 
  33.     }
  34.    
  35.    
  36. END:printf("你在这个世界总共生活了%d天\n", count);        
  37.    
  38.     return 0;
  39. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 08:39:26 | 显示全部楼层

回帖奖励 +3 鱼币

建议用安全的scanf(scanf_s)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 09:38:13 From FishC Mobile | 显示全部楼层

回帖奖励 +3 鱼币

34,35,37,38行的位置都错了,都应该在前一个while的括号里。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 09:39:17 From FishC Mobile | 显示全部楼层
是31,32,34,35
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 09:42:12 | 显示全部楼层
本帖最后由 lpx9393 于 2020-2-6 09:45 编辑
XiaoPaiShen 发表于 2020-2-6 04:29
不懂c 语言,但感觉应该这样写,你运行一下看看对不对,我不知 c 如何运行


哈哈,谢谢,我找到我错在哪了,大括号太多看乱了,把条件写串了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 09:44:31 | 显示全部楼层

是的,大括号太多看乱了已经解决啦谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 11:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表