P1085 [NOIP2004 普及组] 不高兴的津津

题目描述

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

输入格式

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

输出格式

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

1.题目分析

该题主要考查了对循环和数组的使用,打擂台求最大值。

2.题目思路

需要定义最大值max和数组存储每天的时间arr[7],
先循环依次将时间和放入数组中,将数组索引0赋值给max,
循环判断一遍数组,找出最大值。再一次循环数组,
打印第一次出现最大值的下标,并且做出条件判断 ,数组值是否大于8,
满足条件后直接打印,return结束程序。
最后打印0,表示没有不高兴的情况发生。

3.代码演示

#include 

int main() {
    //定义最大值和数组存储每天的时间
    int a, b, max;
    int arr[7];
    //循环存储数据
    for (int i = 0; i < 7; ++i) {
        scanf("%d %d", &a, &b);
        arr[i] = a + b;
    }
    max = arr[0];
    //找到最大值
    for (int i = 0; i < 7; ++i) {
        if (max < arr[i]) {
            max = arr[i];
        }
    }
    //打印第一次出现最大值的下标
    for (int i = 0; i < 7; ++i) {
        //还需要判断是否会不高兴
        if (max == arr[i] && max > 8) {
            printf("%d\n", i + 1);
            return 0;
        }
    }
    //高兴打印0
    printf("0");
    return 0;

}

你可能感兴趣的:(刷题go,go,go,算法)