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