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

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

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绿马护体

目录
相关文章
|
5月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
46 1
|
5月前
|
存储 算法 安全
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
40 0
|
6月前
|
测试技术 C语言
hdu 1106排序 c语言解题
hdu 1106排序 c语言解题
38 0
|
测试技术 C语言
hdu 1106排序 c语言解题
hdu 1106排序 c语言解题
41 0
|
C语言
【C语言】左旋字符串解题思想
【C语言】左旋字符串解题思想
73 0
【C语言】左旋字符串解题思想
|
定位技术 C语言 C++
C语言解题——分发饼干
力扣题目链接(opens new window) 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 示例 1: ·输入: g = [1,2,3], s = [1,1] ·输出: 1 解释:你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。虽然你有两块小饼干,由于·他们的尺
|
算法 C语言
[解题报告] 《C语言入门100例》(第11例) 溢出
[解题报告] 《C语言入门100例》(第11例) 溢出
[解题报告] 《C语言入门100例》(第11例) 溢出
[解题报告] 《C语言入门100例》(第10例) 平均数
[解题报告] 《C语言入门100例》(第10例) 平均数
[解题报告] 《C语言入门100例》(第10例) 平均数
[解题报告]《C语言入门100例》(第7例) 给定 n,求 1 × 2 × 3 × ... × n 的乘积
[解题报告]《C语言入门100例》(第7例) 给定 n,求 1 × 2 × 3 × ... × n 的乘积
[解题报告]《C语言入门100例》(第7例) 给定 n,求 1 × 2 × 3 × ... × n 的乘积
【解题报告】《C语言入门100例》(第4例) 整除
【解题报告】《C语言入门100例》(第4例) 整除
【解题报告】《C语言入门100例》(第4例) 整除