c语言基础:L1-069 胎压监测

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

让我们把四个车轮 ------ 左前轮、右前轮、右后轮、左后轮 ------ 顺次编号为 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表示程序正常结束  
}
相关推荐
呜喵王阿尔萨斯21 分钟前
编程中的英语
c语言·c++
only-lucky1 小时前
C语言socket编程-补充
服务器·c语言·php
JeffersonZU3 小时前
Linux/Unix进程概念及基本操作(PID、内存布局、虚拟内存、环境变量、fork、exit、wait、exec、system)
linux·c语言·unix·gnu
ruanjiananquan994 小时前
c,c++语言的栈内存、堆内存及任意读写内存
java·c语言·c++
持梦远方4 小时前
C 语言基础入门:基本数据类型与运算符详解
c语言·开发语言·c++
Heartoxx5 小时前
c语言-指针(数组)练习2
c语言·数据结构·算法
码农不惑12 小时前
2025.06.27-14.44 C语言开发:Onvif(二)
c语言·开发语言
凌肖战14 小时前
力扣网C语言编程题:在数组中查找目标值位置之二分查找法
c语言·算法·leetcode
BreezeJuvenile14 小时前
数据结构与算法分析课设:一元多项式求值
c语言·课程设计·数据结构与算法分析·一元多项式计算
悲伤小伞15 小时前
linux_git的使用
linux·c语言·c++·git