Cyzyt 发表于 2019-8-22 15:23:13

S1E17~18数组课后生命计算器

   我 :       请输入你的生日(如1988-05-20):1988-05-20
请输入今年日期(如2016-03-28):2016-03-28
你在这个世界上总共生存了10536天



    小甲鱼:         请输入你的生日(如1988-05-20):1988-05-20
请输入今年日期(如2016-03-28):2016-03-28
你在这个世界上总共生存了10174天




编译器不同是有区别的吗,我的代码和小甲鱼一样(复制),为什么最后结果不同???{:10_282:}







Cyzyt 发表于 2019-8-22 15:27:40

好像小甲鱼贴上去的代码有问题

flamer 发表于 2019-8-22 16:03:12

上代码呀

RIXO 发表于 2019-8-22 18:00:21

10174 是对的,自己单步跟吧

Cyzyt 发表于 2019-8-23 10:04:34

#include <stdio.h>

int main()
{
        int year1,month1,day1,year2,month2,day2;      // year1是你的生日年份,year2是今天的年份
        long count=0;                                 //count储存活了几天
        int days[]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
       
        printf("请输入你的生日(如:1988-05-01):");
        scanf("%d-%d-%d",&year1,&month1,&day1);
       
        printf("请输入今年日期(如:2019-08-22):");
        scanf("%d-%d-%d",&year2,&month2,&day2);
       
        while (year1<=year2){
                days=(year1%400==0||(year1%4==0&&year1%100!=0))?29:28;
                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("你在这个世界共生存了%ld天",count);
       
        return 0;
}
                       

应该是day1=1,month1=1

Cyzyt 发表于 2019-8-23 10:05:11

Cyzyt 发表于 2019-8-23 10:04
应该是day1=1,month1=1

小甲鱼贴的是day1=0,month1=0

仲恺小污龟 发表于 2020-4-2 17:57:05

Cyzyt 发表于 2019-8-23 10:05
小甲鱼贴的是day1=0,month1=0

一个月的第一天是1号,所以应该day1=1.
页: [1]
查看完整版本: S1E17~18数组课后生命计算器