一、题目
![](https://i-blog.csdnimg.cn/blog_migrate/624182955507d35073c63fb9ea632f3f.png)
二、解题思路
- 找出最大值、最小值、超过阈值的数量、低于最低报警胎压的数量;
- 如果 (minn>ban && (maxx-minn)<=dif) ,输出 Normal ;
- 如果 ((cot1==1 || cot2==1) && (cot1<2 && cot2<2)) ,即只有胎压最低的轮胎需要报警,找出此轮胎的序号,输出 Warning: please check #%d! ;
- 否则需要检查所有轮胎,输出 Warning: please check all the tires! 。
三、代码
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,ban,dif;
cin>>a>>b>>c>>d>>ban>>dif;
int minn=min(min(a,b),min(c,d));
int maxx=max(max(a,b),max(c,d));
int cot1 = (maxx-a>dif)+(maxx-b>dif)+(maxx-c>dif)+(maxx-d>dif);
int cot2 = (a<ban)+(b<ban)+(c<ban)+(d<ban);
if(minn>ban && (maxx-minn)<=dif)
{
cout<<"Normal";
}
else if((cot1==1 || cot2==1) && (cot1<2 && cot2<2))
{
int x;
if(minn==a)
{
x=1;
}
else if(minn==b)
{
x=2;
}
else if(minn==c)
{
x=3;
}
else
{
x=4;
}
printf("Warning: please check #%d!",x);
}
else
{
cout<<"Warning: please check all the tires!";
}
}
四、总结
- 超过阈值的数量:cot1 = (maxx-a>dif)+(maxx-b>dif)+(maxx-c>dif)+(maxx-d>dif) 。
- 低于最低报警胎压的数量:cot2 = (a<ban)+(b<ban)+(c<ban)+(d<ban) 。