C++洛谷题解(21)——P1085

题目:不高兴的津津

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

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

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

这普及组的题就是难呀,在这里光题目就391个字了。不过这道题本身并不难,就是一个纸老虎,空架子。思路如下:

  1. 声明5个变量,分别表示课内课时a、课外课时b、总课时s、max值和day数
  2. 用for循环的形式遍历1~7
  3. 输入a和b的值并计算s的值
  4. 判断s是否大于max值
  5. 如果是那么max值等于s的值,day数等于当前天数
  6. 输出day数

怎么有种答案都说出来的感觉呢? 代码如下:

#include<bits/stdc++.h>//万能头
using namespace std;
int main(){
    int a,b,s,max=0,day=0;//声明的5个变量
    for(int i=1;i<=7;i++){//遍历1~7
        cin>>a>>b;//输入a和b的值
        s=a+b;//计算总课时
        if((s>max)&&(s>7)){//判断s是否大于max值
            max=s;//如果大于max值那么max值等于s
            day=i;//天数等于当前天数
        }
      }
    cout<<day;//直接输出当前天数
    return 0;//完美的结束
}

复制版:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,s,max=0,i,day=0;
    for(i=1;i<=7;i++){
        cin>>a>>b;
        s=a+b;
        if((s>max)&&(s>8)){
            max=s;
            day=i;
        }
      }
    cout<<day;
    return 0;
}

其实还有几种做法,虽然代码没有提供,但是大致思路提供一下:

  • 声明20多个变量,一个个算
  • 用二维数组和sort函数
  • 用一维数组和sort函数
posted @ 2022-07-19 19:47  GitTJBKBeta  阅读(106)  评论(0)    收藏  举报