【不高兴的津津】C语言17行代码解题

11 篇文章 1 订阅
8 篇文章 0 订阅

 

目录

 1.前言

2.题目

 2.1题目情景

2.2输入格式

2.3输出格式

3.题目分析

4.代码

 4.1循环部分

4.2数据打印

5.总结


1.前言

        这道题目基本没有任何难度17行解决他,归根到底就是个数据排序问题,这次为了追求极致的精简,删除了大部分的无用代码,没有使用数组等进行数据处理。虽然数据量不大时间优化不明显,但如果涉及海量数据,将会有质的飞跃。废话不多说了,上题目!!!

2.题目

 2.1题目情景

        津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

2.2输入格式

输入包括 77 行数据,分别表示周一到周日的日程安排。每行包括两个小于 1010 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

2.3输出格式

一个数字。如果不会不高兴则输出 0,如果会则输出最不高兴的是周几(用 1,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

3.题目分析

        我们可以看出这孩子是个很不喜欢学习的孩子。。。和笔者一样,笔者比他有过之而无不及,一般看一个小时就歇菜了,还要苦逼码字。QAQ
        好啦进入正题,我们通过对题目分析发现,本题我们首先需要求解津津每天上课的总小时数目,如果超过8小时就会不开心,然后我就将她记录。如果没有超过8小时就是开心的,这时候只需要输出0。由此可见,本题在输入输出和数据处理上并没有过分的为难我们。下面我们来上代码。

4.代码

        由于本次案例较为简单,笔者本着能少敲就少敲的方针,对代码进行了优化,缩短为17行来进行讲解。先放一个完整截图。然后慢慢简述。

 4.1循环部分

        针对我们这个程序最为核心的就是循环部分,但是在我们赋值的时候是有个坑在这里的。

各位可以看到我的max的初始值赋值为1,这是为了满足后面的if判断语句,否则不满足条件就会导致数据损失。

  int a,b,day,max=1;  //a,b表示时间,day表示日期,max是最大值

    for (int i = 0; i < 7; i++) //七天循环
    {
        scanf("%d %d",&a,&b);
        
        if((a+b>max)&&(a+b>8))//大于最大值且大于8
        {
            max=a+b;          //更换最大值
            day=i+1;          //更新天数  
        }
    }

4.2数据打印

        这里的输出只需要进行判断最后的max是否大于8,如果大于8就输出我们的max否则是0.

   
    if (max>8) printf("%d",day);//判断
    else printf("0");
        
    

5.总结

        这题相对简单,但是越简单就可能想的越复杂,就像笔者开始时候居然想用结构体来储存我们的数据,这个样子就会导致思路越来越远,最后好在笔者浪子回头哈哈哈。好啦今天的文章就到这里了。最后AC绿马护体

 

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值