小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。
让我们把四个车轮 ------ 左前轮、右前轮、右后轮、左后轮 ------ 顺次编号为 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!
程序源码:
cpp
#include <stdio.h> // 包含标准输入输出头文件,为了使用scanf和printf函数
int main(){ // 主函数的开始,每个C程序都从main函数开始执行
int p[5] = {0}, minP, range; // 定义一个大小为5的整数数组p并初始化为0,还定义了两个整数变量minP和range
// 使用scanf函数从标准输入读取6个整数,并将它们存储到数组p的相应位置和变量minP、range中
scanf("%d %d %d %d %d %d", &p[1], &p[2], &p[3], &p[4], &minP, &range);
int max = 0; // 定义一个整数变量max并初始化为0
// 循环遍历数组p的元素(从索引1到4),查找数组中的最大值,将其存储在max变量中
for(int i = 1; i <= 4; i++){
if(p[i] > max){
max = p[i];
}
}
int count1 = 0, count2 = 0, index; // 定义三个整数变量count1、count2和index,分别用于计数满足特定条件的元素数量和存储异常元素的索引
// 循环遍历数组p的元素(从索引1到4),对每个元素进行条件检查并更新count1和count2的值,同时如果元素不满足条件,则将它的索引存储在index变量中
for(int i = 1; i <= 4; i++){
int e = p[i] - max; // 计算当前元素与最大值的差值,存储在变量e中
if(e < 0) e = -e; // 如果差值是负数,则将其转换为正数,确保计算结果的准确性
if(e <= range && p[i] >= minP){ // 如果差值小于或等于range并且元素值大于或等于minP,则增加count1的值
count1++;
}
if(e > range || p[i] < minP){ // 如果差值大于range或者元素值小于minP,则增加count2的值,并将元素的索引存储在index变量中
count2++;
index = i;
}
}
if(count1 == 4){ // 如果count1的值为4,即所有元素都满足条件(差值小于或等于range并且元素值大于或等于minP),则输出"Normal"并结束程序
printf("Normal\n");
return 0;
}
if(count2 == 1){ // 如果count2的值为1,即只有一个元素不满足条件(差值大于range或者元素值小于minP),则输出警告信息并指出异常元素的索引
printf("Warning: please check #%d!\n", index);
}else{ // 如果count2的值大于1,即有多个元素不满足条件(差值大于range或者元素值小于minP),则输出更严重的警告信息,指示需要检查所有轮胎
printf("Warning: please check all the tires!\n");
}
return 0; // 主函数结束,返回0表示程序正常结束
}