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

本文介绍了一个使用C语言实现的数组排序与查找算法示例。代码中定义了两个数组s1和s2,通过循环输入7组数据,并计算每组数据的总和。然后,对这些数据进行排序,并找出原始数据中与排序后最大值相等的数据位置。这个示例展示了基本的C语言编程技巧,包括数组操作、循环、条件判断和简单的排序算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int s1[10], s2[10], c[10], d[10], a, i, j;
    i = 0;
    while (i < 7)       //循环输入7组数据
    {
        scanf("%d %d", &s1[i], &s2[i]);
        d[i]=s1[i]+s2[i];   //每天学习总时长
        c[i]=d[i];
        i++;
    }
    for (i=6; i>0; i--)     //对7组数据排序
    {
       for (j=i-1; j>=0; j--)
        {
            if (c[i] > c[j])
            {
                a = c[i];
                c[i] = c[j];
                c[j] = a;
            }
        }
    }
    for (i=0; i<7; i++)     //把原始数据与排序后的最大数据比较
    {
        if (d[i] == c[0])
        {
            printf("%d\n", ++i);
            break;      //找到符合数据后跳出
        }
    }
    return 0;
}

转载于:https://www.cnblogs.com/Tristan-Adams/p/9613934.html

这是一个经典的判断条件并记录结果的问题,我们可以一步步分析如何解决这个问题: ### 题目解析 我们需要读取一周内每天津津学校课外的学习时间,并计算总学习时间是否超过8小时。如果是,则需要标记这一天为“高兴”的日子。最后我们要找出是否存在这样的日子,若存在,出最高兴的一天(即最早超出8小时的日子)。 --- ### 解题步骤 1. **初始化变量** - `max_unhappy_day = 0` 表示目前最高兴的天,默认值设为0。 - `unhappy_threshold = 8` 定义最大容忍时间为8小时。 2. **遍历每一天的数据** 对于每一行输入: - 将当天学校时间额外课程时间相加得到总时间 `total_time`。 - 如果 `total_time > unhappy_threshold` 并且当前天数比之前记录的最大高兴日期更早,则更新最高兴的一天。 3. **处理边界情况** - 若所有天都未超标,返回0; - 否则返回最高兴那天对应的编号。 4. **最终出** 根据上述规则打印出答案即可。 --- ### 示例代码 (Python) 以下是基于题目描述的一个简单实现: ```python # 输入七天的日程数据 schedules = [] for _ in range(7): school, extra = map(int, input().split()) schedules.append(school + extra) # 初始化变量 unhappy_threshold = 8 max_unhappy_day = 0 found_unhappy = False # 检查每一天是否有超时的情况 for day in range(7): # 周一周日对应索引0~6 if schedules[day] > unhappy_threshold: found_unhappy = True max_unhappy_day = day + 1 # 出从1开始计数 break # 只需找到最早的那一天即可退出循环 # 打印结果 if not found_unhappy: print(0) else: print(max_unhappy_day) ``` --- ### 测试用例验证 #### 输入样例1 ``` 5 3 6 2 7 2 5 3 5 4 0 4 0 6 ``` - 计算过程: - 周一:5+3=8 ≤ 8 (正常) - 周二:6+2=8 ≤ 8 (正常) - 周三:7+2=9 > 8 (高兴!) - 其余几天无需继续检查。 - 最终结果:周三最高兴 → 出 `3`. #### 输入样例2 ``` 4 2 5 1 6 1 7 1 3 3 2 2 1 1 ``` - 计算过程: - 每一天都超过8小时。 - 最终结果:都高兴 → 出 `0`. --- ### 总结 通过逐天累加比较的方式可以快速定位问题所在,算法复杂度仅为O(n),非常适合此类场景下的求解需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值