鱼C论坛

 找回密码
 立即注册
查看: 1419|回复: 8

[已解决]C语言S1E17~18的课后作业第三题

[复制链接]
发表于 2019-8-14 13:37:58 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>

int main()
{
       
        int day1, day2, day3;
        int month1, month2, month3;
        int year1, year2, year3;
        long count1 = 0, count2;
       
        int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        printf("请输入你的生日(如1988-05-20):");
        scanf("%d-%d-%d", &year1, &month1, &day1);
       
        printf("请输入今年的日期(如2016-03-28):");
        scanf("%d-%d-%d", &year2, &month2, &day2);
       
        year3 = year1 + 80;
        month3 = month1;
        day3 = day1;
       

        while(1)
        {
                /*if(year1 % 400 == 0 || (year1 % 4 && year1 % 100 != 0))
                {
                        days[1] = 29;                 
                }
                else
                {
                        days[1] = 28;
                }*/days[1] = (year1 % 400 == 0 || (year1 % 4 == 0 && year1 % 100 != 0)) ? 29 : 28;

                while(month1 <= 12)
                {
                        while(day1 <= days[month1 - 1])
                        {
                               
                                if(year1 == year2 && month1 == month2 && day1 == day2)
                                {
                                        count2 = count1;
                                        printf("你在这个世界上总共生存了%d天\n", count2);
                                }
                               
                                if(year1 == year3 && month1 == month3 && day1 == day3)
                                {
                                        printf("如果能活到80岁,你还剩下%d天\n", count1 -count2);
                                        printf("你已经使用了%.2f\%%的生命,请好好珍惜剩下的时间!\n", (double)count2 / count1 * 100);
                                       
                                        goto FINISH;
                                }       
                                day1++;
                                count1++;       
                        }
                        day1 = 1;
                        month1++;
                }
                month1 = 1;
                year1++;
               
               
        }
FINISH : return 0;


}


重点在if else和三目运算符这边 , 救救孩子吧 ,真的不行呀。
最佳答案
2019-8-14 16:30:52
if(year1 % 400 == 0 || (year1 % 4 && year1 % 100 != 0)) 这句有问题,
if(year1 % 400 == 0 || (year1 % 4 == 0 && year1 % 100 != 0)) ,应该是这样才对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-8-14 13:38:31 | 显示全部楼层
顶一下   鱼油快来帮我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2019-8-14 14:30:56 | 显示全部楼层
无敌大帅哥 发表于 2019-8-14 13:38
顶一下   鱼油快来帮我

我都看不出你的问题是什么,怎么帮?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-8-14 14:56:48 | 显示全部楼层
人造人 发表于 2019-8-14 14:30
我都看不出你的问题是什么,怎么帮?

我的意思是
你可以分别用if 和 else语句 与三目运算符 分别检测一次  得出的答案是不一样的  我是真的没搞明白 枯了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-14 14:59:56 | 显示全部楼层
本帖最后由 无敌大帅哥 于 2019-8-14 15:01 编辑

一个是
[6`DUOU]86CSM52YO[MB9H1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-14 15:01:43 | 显示全部楼层
另一个是
0FI@[GXVQ~2XWX`I733CIHI.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-14 15:02:38 | 显示全部楼层
枯了  难受呀 老铁
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-14 16:30:52 | 显示全部楼层    本楼为最佳答案   
if(year1 % 400 == 0 || (year1 % 4 && year1 % 100 != 0)) 这句有问题,
if(year1 % 400 == 0 || (year1 % 4 == 0 && year1 % 100 != 0)) ,应该是这样才对

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
无敌大帅哥 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-8-15 01:01:35 | 显示全部楼层
东辰木 发表于 2019-8-14 16:30
if(year1 % 400 == 0 || (year1 % 4 && year1 % 100 != 0)) 这句有问题,
if(year1 % 400 == 0 || (year1  ...

打扰了,可能学傻了 ,这么低级的错误 想半天 哈哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-4 03:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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