czb08191314 2023-08-28 08:41 采纳率: 88.5%
浏览 3
已结题

c语言pat基础题0828L1069

img

img

img


#include<stdio.h>
int main(){
    int arr[4],lowpress,tv;
    int dv1,dv2,t,cnt=0,dv_flag,cnt_flag,arr1[4];
    //扫描数组和其他元素
    for(int i=0;i<4;i++){
        scanf("%d ",&arr[i]);
    }
    scanf("%d %d\n",&lowpress,&tv);
    //数组赋值给新数组,以便未来排序打乱后,计算轮胎位置
    for(int i=0;i<4;i++){
        arr1[i]=arr[i];
    }
    //计算低于最低胎压的轮胎数,如果存在一个,记录他的胎数
    for(int i=0;i<4;i++){
        if(arr[i]<lowpress){
            cnt++;
            if(cnt==1){
                cnt_flag=i+1;
            }
        }
    }
    //数组值递增排序
    for(int i=0;i<4;i++){
        for(int j=i+1;j<4;j++){
            if(arr[i]>arr[j]){
                t=arr[i];
                arr[i]=arr[j];
                arr[j]=t;
            }
        }
    }
    //求第一大差值和第二大差值
    dv1=arr[3]-arr[0];
    dv2=arr[3]-arr[1];
    //根据最大差值寻找轮胎序数
    for(int i=0;i<4;i++){
        if(arr1[i]==arr[0]){
            dv_flag=i+1;
        }
    }
    /*
    第一大差值小于阈值且低于最低气压轮胎数为零则正常;
    差值:第一大差值大于阈值,且第二大差值小于阈值,输出差值对应的轮胎序数;
    
    */
    if(dv1<tv&&cnt==0){
        printf("Normal");
    }else if(dv1>tv&&dv2<=tv){
        printf("Warning: please check #%d!",dv_flag);
    }else if(cnt==1){
        printf("Warning: please check #%d!",cnt_flag);
    }else if((dv1>tv&&dv2>tv)||cnt>=2){
        printf("Warning: please check all the tires!");
    }
}

我的代码出现问题,本题希望可以得到大家的指导,谢谢你的帮助!

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2023-08-28 10:05
    关注

    供参考 :

    #include <stdio.h>
    int main()
    {
        int i, TP[4], minalm_TP, TP_th, TP_max, ans, flg;
        for (i = 0; i < 4; i++) {
            scanf("%d", &TP[i]);
            if (i == 0 || TP_max < TP[i])
                TP_max = TP[i];
        }
        scanf("%d %d", &minalm_TP, &TP_th);
        for (i = 0, ans = 0, flg = 0; i < 4; i++) {
            if (TP_max - TP[i] > TP_th || TP[i] < minalm_TP) {
                ans++;
                flg = i;
            }
        }
        if (ans == 0)
            printf("Normal");
        else if (ans == 1)
            printf("Warning: please check #%d!", flg + 1);
        else if (ans >= 2)
            printf("Warning: please check all the tires!");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月6日
  • 已采纳回答 8月29日
  • 创建了问题 8月28日

悬赏问题

  • ¥15 yolo v5中labelimg的作用
  • ¥30 VBA网抓application/json的网抓怎么写!
  • ¥15 国赛c题2021,没有理解这一串代码的意思,这样报错该怎么解决(语言-matlab)
  • ¥15 一、执行完中断程序后如何继续运行,二、中断结束后如何跳过中断触发前的点位(LOW点不要继续运行,可以运行UP点)(关键词-程序运行)
  • ¥15 if为什么跳过if 直接执行else 中文
  • ¥200 解决登录微信老版本限制封号问题
  • ¥15 mysql中时间处理问题
  • ¥20 讲解此音频放大电路原理及关键部分
  • ¥15 rtsp 转 m3u8 执行后卡在Decoding VUI
  • ¥20 微信小程序转发链接问题,已禁止转发仍能转发的场景