首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

卡車通行高度檢測:限高架下18輪卡車通行碰撞判斷系統

     編輯:關於C語言

問題背景

18輪卡車高度 168 英寸,需通過 3 個限高架。輸入多組測試數據,每組 3 個限高值(0-300)。若卡車高度嚴格小於所有限高,輸出 "NO CRASH";否則輸出 "CRASH X",X 為最低的導致碰撞的限高值(≤168)。輸入以負數結束。

解題邏輯

  1. 讀取三個限高值到陣列
  2. 排序陣列升序
  3. 遍歷排序後陣列,找第一個 ≤168 的值
  4. 若找到 → CRASH 該值;否則 → NO CRASH

代碼實現

#include <stdio.h>

int main() {
    int i, j, t, flag, num[3];

    while (scanf("%d", &num[0]) != EOF && num[0] >= 0) {
        scanf("%d %d", &num[1], &num[2]);
        flag = 0;

        // 簡單排序(冒泡/選擇)
        for (i = 0; i < 2; i++)
            for (j = i+1; j < 3; j++)
                if (num[i] > num[j]) {
                    t = num[i]; num[i] = num[j]; num[j] = t;
                }

        for (i = 0; i < 3; i++) {
            if (num[i] <= 168) {
                flag = 1;
                break;
            }
        }

        if (flag) printf("CRASH %d\n", num[i]);
        else printf("NO CRASH\n");
    }
    return 0;
}

測試樣例

輸入:

180 160 170
-1

輸出: CRASH 160

排序後:160, 170, 180。首個 ≤168 的是 160,碰撞發生在最矮限高架。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved