請教投入 a,b,c三個數字
用 if else 如何找最大的數字?
其實這是孩子的國中作業
而且還規定用 if else
應用在文書實務上...excel 用 max() 就搞定
不過對於沒有程式實做經驗的人來說
實在是毫無頭緒
和孩子討論後
邏輯是這樣的:
if a>b ,
1.正確, and b>c ,所以 a 最大。
2.錯誤,即 b>a, 所以要比較 b 和 c 的大小
2-1 and b>c , 所以 b 最大
2-2 and b<c, 所以 c 最大
試著寫出來:
a=int(input("請輸入a的值:"))
b=int(input("請輸入b的值:"))
c=int(input("請輸入c的值:"))
if a>=b:
if b>=c:
print("最大值為:",a)
elif c>=b:
print("最大值為:",a)
elif c>=a:
print("最大值為:",c)
if b>=a:
if a>=c:
print("最大值為:",b)
elif c>=b:
print("最大值為:",c)
else:
print("最大值為:",c)
比較大小時會出錯
請教是哪裡出錯呢?
謝謝
nrest.fy wrote:
if a > b a...(恕刪)
謝謝各位
最後
參考大家的指導
得到
=============================
a=int(input("請輸入a的值:"))
b=int(input("請輸入b的值:"))
c=int(input("請輸入c的值:"))
if a>=b and a>=c:
print("最大值為:",a)
elif b>=c:
print("最大值為:",b)
else:
print("最大值為:",c)
=============================
結案,謝謝各位
題外話
現在國中課程還有上電腦課
個人第一次使用電腦,已經超過20歲了
而且是工作導向,在外面補習班也有上過類似Qbasic的課程
不過,完全是聽不懂
這種比較數字大小的程式語法,
比較像是訓練「邏輯」這部份的能力
並不是套裝應用程式使用能力的課程
在有些邏輯演繹還未經訓練的孩子身上
似乎是辛苦了些
王大大頭 wrote:
請教投入 a,b,c...(恕刪)
簡單的說....
其實是在第一段if判斷時,
elif裡面c>=b這段.此時最大應該是c不是a吧?!
if a>=b:
if b>=c: #請空n格
print("最大值為:",a) #請空n格
elif c>=b: #請空n格
print("最大值為:",a) #請空n格 #這裡應該是c....
但我覺得這可能是樓主筆誤.
python裡的邏輯運算,如果不是單獨的邏輯,而是歸附在前面邏輯下的else if
那以下得內縮,不然規則上會以為是跟前面邏輯無關的獨立邏輯。
以上是一陣子得常看同事python碼的初學者,一些直覺上看到的問題。
c&c++語言的並且是用&&
但是python則是直接用英文的and....
而且令人不解的是有時候想用四則運算括號,把邏輯判斷框起來,反而是錯的邏輯。
hchou38 wrote:
簡單的說....其...(恕刪)
同意, PYTHON 的空格限制,和 COBOL 一樣,要求嚴格! 錯位都不行!
但是就不會一堆人各唱各的調! 搞到最後大家都看不懂!
就像
if (a > b) {
printf(" a 大");
} else {
printf(" b 大");
}
這一種寫法,簡單還可以,多層就很容錯亂了!
我個人比較愛
if (a > b)
{
printf(" a 大");
}
else
{
printf(" b 大");
}
一層一層的! 那為何會有之前那一些寫法呢? 主要就是因為檔案大小的問題! 早期因為檔案若是大了,佔了磁碟空間會變多,當時的磁碟貴,為了可以減少一些 「跳行」 所以就這樣縮減的寫法, 但是之後也導致維謢上多了很多的困難!
python 對我最大的麻煩,就是沒有 switch 的命令(雖然有第三方寫出套用工具,但是還是不好用), 變成要用一堆的 if else, else if ...... 來組合!
而我認為 holyduck 的寫法比較好! 因為可以擴充! 因為若是今天突然由 a,b,c 再加上 d,e,f.........
那就無限的 if else 下去了! 若是使用 holyduck 的寫法,配合著 for 或 while 的方式,就可以把 陣列中最大值找出!
傻綠班的鴿
8:17 ━━━━━━━━●━━━ 14:50
⇆ㅤㅤㅤㅤ◁ㅤㅤ❚❚ㅤㅤ▷ㅤㅤㅤㅤ↻
關閉廣告