【程序设计天梯赛】L1-5 胎压监测

简介: 小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。

小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。10.png


让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序,随时监测四轮的胎压,并给出正确的报警信息。报警规则如下:


如果所有轮胎的压力值与它们中的最大值误差在一个给定阈值内,并且都不低于系统设定的最低报警胎压,则说明情况正常,不报警;

如果存在一个轮胎的压力值与它们中的最大值误差超过了阈值,或者低于系统设定的最低报警胎压,则不仅要报警,而且要给出可能漏气的轮胎的准确位置;

如果存在两个或两个以上轮胎的压力值与它们中的最大值误差超过了阈值,或者低于系统设定的最低报警胎压,则报警要求检查所有轮胎。


输入格式:


输入在一行中给出 6 个 [0, 400] 范围内的整数,依次为 1~4 号轮胎的胎压、最低报警胎压、以及胎压差的阈值。


输出格式:


根据输入的胎压值给出对应信息:


如果不用报警,输出 Normal;

如果有一个轮胎需要报警,输出 Warning: please check #X!,其中 X 是出问题的轮胎的编号;

如果需要检查所有轮胎,输出 Warning: please check all the tires!。


输入样例 1:


242 251 231 248 230 20


输出样例 1:


Normal

输入样例 2:


242 251 232 248 230 10

输出样例 2:


Warning: please check #3!

输入样例 3:


240 251 232 248 240 10

输出样例 3:

Warning: please check all the tires!


思路:


先设定一个数组分别存放四个轮胎数据,并且数组下标对应轮胎标;


在循环输入轮胎值时时找出最大值,并记录;


然后根据条件进行判断问题轮胎 。


注:


在这里判断轮胎的方法为,循环从第一个轮胎开始判断是否有问题,而分别要判断是否低于最低压和 最大值误差超过了阈值;


设定两个数字,第一个存放当前问题轮胎下标(因为当两个问题轮胎时即可不输出下标)


第二个数字存放问题轮胎个数(当出现问题轮胎时,此数字++即可)


在判断时,某轮胎有一条件不满足即跳出此轮胎循环即可(因为判断的为统一轮胎,当此轮胎已经被记录为问题轮胎后,就不必再去判断第二条件是否满足了)


最后,按照条件输出相应的数值即可。


代码:

#include <iostream>
using namespace std ;
int a[5] ;
void test01()
{
  int M_max, M_p, M_size ;
  M_max = 0 ;
  int num = 0 ;
  int P_num = 0 ;
  int C_sum = 0 ;
  for(int i=1; i<5; i++)
  {
    cin >> a[i] ;
    if(M_max < a[i])
    {
      M_max = a[i] ;  //  求出四个胎中最大值 
    }   
  }
  cin >> M_p ;    //最低胎压 
  cin >> M_size ;   //胎压差的阈值 
  for(int i=1; i<5; i++)  //判断 
  {     
    if(a[i] < M_p)  //判断是否低于最低胎压 
    {
      P_num++ ; //报警胎数+1 
      num = i ; //记录几胎 
      continue ;
    }
    C_sum =  M_max - a[i] ;
    if(C_sum > M_size)
    {
      P_num++ ;
      num = i ;
    }   
  }
  if(P_num == 0)
  {
    cout << "Normal" << endl ;
    return ;
  }
  if(P_num == 1 )
  {
    printf("Warning: please check #%d!\n",num) ;
    return ;
  }
  if(P_num > 1)
  {
    cout << "Warning: please check all the tires!" << endl ;
    return ;
  }
}
int main(void)
{
  test01() ; 
  system("pause") ;
  return 0 ;
}

运行结果·:11.png

相关文章
|
计算机视觉 数据格式
使用opencv在Qt控件上播放mp4文件
使用opencv在Qt控件上播放mp4文件
350 2
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
JavaScript 前端开发 开发者
控制台居然可以这么玩?五分钟带你上手ANSI指令,实现一个log工具包
控制台居然可以这么玩?五分钟带你上手ANSI指令,实现一个log工具包
421 1
|
机器学习/深度学习 算法 数据挖掘
深度学习中常用损失函数介绍
选择正确的损失函数对于训练机器学习模型非常重要。不同的损失函数适用于不同类型的问题。本文将总结一些常见的损失函数,并附有易于理解的解释、用法和示例
806 0
深度学习中常用损失函数介绍
|
C++
【天梯赛】L2-045 堆宝塔
最后 A 柱上剩下的宝塔作为一件成品,B 柱上剩下的彩虹圈被逐一取下,堆成另一座宝塔。堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小,按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。第二行按照宝宝抓取的顺序给出 N 个不超过 100 的正整数,对应每个彩虹圈的直径。//定义一个栈,T可以为int,float,double,char,string......在一行中输出宝宝堆出的宝塔个数,和最高的宝塔的层数。//检查栈是否为空,如果为空返回true,否则返回false。
204 8
|
存储 定位技术
【天梯赛】L2-048 寻宝图 (DFS做法)
遇到一个非'0'字符(也就是'1'和 宝藏'2'到'9')就让ans++,同时将这个非'0'字符染色为'0',然后往四个方向(上、下、左、右)搜索,这里的目的是那一片岛屿(也就是那一片为'1'的部分)都染色为‘0’。本题就请你统计一下,给定的地图上一共有多少岛屿,其中有多少是有宝藏的岛屿。为了判断有宝藏的岛屿,这里我开了一个全局变量f来判断这一片岛屿是否有宝藏(也就是有无字符'2'-'9'),当搜到字符'2'~'9'时就将f标记为1。在一行中输出 2 个整数,分别是岛屿的总数量和有宝藏的岛屿的数量。
307 5
|
运维 数据安全/隐私保护 Python
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
|
存储
结构体和结构体指针的区别
结构体和结构体指针的区别
596 1
|
存储 大数据 索引
解锁Python隐藏技能:构建高效后缀树Suffix Tree,处理大数据游刃有余!
【7月更文挑战第19天】Suffix Tree 概述:** 为高效处理字符串搜索、匹配和大数据分析,后缀树是一种优化数据结构,可快速检索后缀、执行最长公共后缀查询及字符串排序。Python中虽无内置实现,但可通过第三方库或自建代码构造。应用于字符串搜索、生物信息学等领域,提升大数据处理效率。
233 3
|
JavaScript
Vue系列——通过moke进行数据模拟
通过moke进行数据模拟
1024 0