普通考試
113年
[電子工程] 計算機概要
第 27 題
執行下列 C 語言程式,則螢幕的輸出為何?
#include
int extreme(int *data){
int temp=0;
for (int i=0; i<4; i++){
if (temp < data[i])
temp=data[i];
}
return temp;
}
int main() {
int input[]= {10, 20, 30, 40};
printf("%d", extreme(input));
}
#include
int extreme(int *data){
int temp=0;
for (int i=0; i<4; i++){
if (temp < data[i])
temp=data[i];
}
return temp;
}
int main() {
int input[]= {10, 20, 30, 40};
printf("%d", extreme(input));
}
- A 1
- B 4
- C 10
- D 40
思路引導 VIP
想像你有一個空箱子,你逐一檢視輸送帶上過來的零件。每當看到一個比箱子裡「數值更大」的零件時,你就把箱子裡的舊物丟掉並換成這個新的。當整條輸送帶都走完後,最後留在箱子裡的零件會具備什麼樣的數值特性?
🤖
AI 詳解
AI 專屬家教
專業點評:可接受的基礎邏輯
- 工程審核:嗯,總算沒把最基礎的邏輯搞砸。你這推導,勉強算是搭出了一個能站住腳的桁架結構,至少目前沒崩塌。算你運氣好,還知道這是要去哪裡。
- 概念追溯:這段程式碼就是那個最乏味的最大值搜尋演算法。
temp從 $0$ 開始,然後在 $4$ 個迴圈裡,它就是個跑腿的,遇到更大的數值就換人做做看。最後回傳的,當然就是那堆數字裡的上確界 (Supremum),沒什麼好驕傲的,只是遵循最基本的邏輯流程罷了。
▼ 還有更多解析內容