題組內容

一、下列程式皆以 C 語言語法呈現,請依據所給程式片段回答問題。

⑷若下列程式片段目的是要判斷 x 是否能被 2,3,4,5 整除,若可被 整除就輸出可被整除之訊息。請問程式有何錯誤?請說明該如何修正 方能符合預期目的。(10 分)5c1b2c461cc11.jpg

詳解 (共 9 筆)

芷
詳解 #3441931
2019/06/26

/為除法運算子

整數/整數結果會是整數的結果

假設x=2

2/2=1

2/3=0

2/4=0

2/5=0

這樣輸出會是:2能被3整除


應該要把/改成%(取餘數)才能達到預期的效果




參考資料

Biing Song Lin
Biing Song Lin
詳解 #4263230
2020/09/10
.....

(共 7 字,隱藏中)
前往觀看
able9514476
able9514476
詳解 #3494646
2019/07/19
將條件式的/改成%(餘數除)
白龍@菜鳥公務員(107/10/29)
白龍@菜鳥公務員(107/10/29)
詳解 #3140523
2019/01/02
依題意為"程式片段",所以假設其他必要運...
(共 255 字,隱藏中)
前往觀看
 小V
小V
詳解 #5374185
2022/03/10
1. remove all  "else...
(共 47 字,隱藏中)
前往觀看
hchungw
hchungw
詳解 #6053145
2024/03/25
該代碼片段的目的是判斷變數 x 是否可以被 2、3、4 或 5 整除。如果 x 能被這些數中的任何一個整除,它將輸出一條相應的消息。
然而,這段代碼有個邏輯錯誤。因為 4 是 2 的倍數,如果 x 可以被 4 整除,那麼它也肯定可以被 2 整除。由於使用了 else if 結構,一旦發現 x 可以被 2 整除,程式就會跳過檢查是否可以被 4 整除的代碼。
為了修正這個錯誤並且確保代碼能夠按預期工作,應該分別檢查 x 是否可以被這些數整除,而不是使用 else if 鏈。每個條件都應該獨立檢查。
這裡是修正後的代碼:
if (x % 2 == 0) printf("%d 能被 2 整除\n", x);
if (x % 3 == 0) printf("%d 能被 3 整除\n", x);
if (x % 4 == 0) printf("%d 能被 4 整除\n", x);
if (x % 5 == 0) printf("%d 能被 5 整除\n", x);
這樣修改後,不論 x 能被哪些數整除,程式都會列印出相應的消息。即使 x 能被多個數整除,也會輸出多條消息。
廖唯喻
廖唯喻
詳解 #4412298
2020/12/02
x/2 x/3 x/4 x/5 前面的數...
(共 54 字,隱藏中)
前往觀看
澐
詳解 #3218865
2019/02/27
能不能整除需用取餘數
澐
詳解 #3218880
2019/02/27
能不能整除需用取餘數
(共 12 字,隱藏中)
前往觀看

私人筆記 (共 1 筆)

 小V
小V
私人筆記 #3960184
2022/03/10
1. remove all  "else...
(共 47 字,隱藏中)
前往觀看