鱼C论坛

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

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

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

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

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

x
本帖最后由 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[1] = 29; 
                }
                while(month1 <= 12)
                {
                        while(day1 <= days[month1 - 1])
                        {
                                if(year1 == year2 && month1 == month2 && day1 == day2)
                                {
                                        goto END;
                                }
                                        day1++; 
                                        count++;
                        } 
                }
                day1 = 1;
                month1++;
        }
        month1 = 1;
        year1++; 
        
END:printf("你在这个世界总共生活了%d天\n", count);        
        
        return 0;
}


最佳答案
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[1] = 29; }

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

                    day1++; 
                    count++;
            }
            day1 = 1;
            month1++;
        }
        month1 = 1;
        year1++;                 
    }
    
    
END:printf("你在这个世界总共生活了%d天\n", count);        
    
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

回帖奖励 +3 鱼币

本帖最后由 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[1] = 29; }

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

                    day1++; 
                    count++;
            }
            day1 = 1;
            month1++;
        }
        month1 = 1;
        year1++;                 
    }
    
    
END:printf("你在这个世界总共生活了%d天\n", count);        
    
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

回帖奖励 +3 鱼币

建议用安全的scanf(scanf_s)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

回帖奖励 +3 鱼币

34,35,37,38行的位置都错了,都应该在前一个while的括号里。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 09:39:17 From FishC Mobile | 显示全部楼层
是31,32,34,35
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


哈哈,谢谢,我找到我错在哪了,大括号太多看乱了,把条件写串了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

是的,大括号太多看乱了已经解决啦谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 05:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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