2016-01-20 45 views
0

請有人可以幫我做作業....我卡住了,我需要認真的幫助。以下是針對每個房間的問題: ,請求房間名稱(例如休息室,餐廳)和房間牆壁的數量:對於每個牆壁,以米爲單位詢問牆壁的高度和寬度。以平方米計算牆的總表面積。
我不能在我添加號碼循環,因爲for循環重複變量做的一樣好,所以我不能記錄我第一次輸入的第一個答案,因爲我不能做到這一點我無法找到總表面積我無法收集我的變量回答在循環

下面我代碼:

numofrooms = input("num of rooms:") 
n = int(numofrooms) 
for n in range(n): 
    input("name of room:") 
    numofwalls = input("num of walls:") 
    wall = int(numofwalls) 
    for wall in range(wall): 
     height = input("height of wall:") 
     height = int(height) 
     width = input("width of wall:") 
     width = int(width) 
     sa = int(height) * int(width) 
    tsa = sa * int(numofwalls) * int(numofwalls) 
+0

提示:將中間結果推送到列表,然後在完成循環時對列表進行求和。 – tripleee

回答

0

目前您正在計算每個房間的表面面積(sa =寬度*高度),但之後未正確計算總面積(即將該值存儲在總計中)。

下面的代碼通過不斷地爲所述房間添加所有牆的sa(「對於牆的範圍(numOfWalls):」循環)來計算每個房間的sa。它需要計算SA所有房間,因此它的每間客房面積合計總數爲變量(如在其他答案中描述)

numOfRooms = int(input("num of rooms:")) 
tsa = 0 
for n in range(numOfRooms): 
    input("name of room:") 
    numOfWalls = int(input("num of walls:")) 
    sa = 0 
    for wall in range(numOfWalls): 
     height = int(input("height of wall:")) 
     width = int(input("width of wall:")) 
     sa = sa + (height * width) 
    tsa = tsa + sa 

我結合一些線,使事情變得更好看

+0

謝謝...它的工作 – Seyi

1

綜上所述值,可以使用一個額外的變量:當您計算每個壁的表面積

sa_sum = 0 
for _ in range(wall): 
    sa = do_your_calculation() 
    sa_sum = sa_sum + sa 
2

,該值添加到一個變量。在程序結束時,打印該變量。

你幾乎與tsa變了這一點,但你的代碼取代tsa代替加入它的前值,應該在for wall in...循環內縮進。

+0

謝謝你...我也剛剛意識到我之前輸入了這個,但我並沒有認爲它是正確的,所以我刪除了它 – Seyi

1
numofrooms = input("num of rooms:") 
n = int(numofrooms) 
tsa = 0 
for n in range(n): 
    input("name of room:") 
    numofwalls = input("num of walls:") 
    wall = int(numofwalls) 
    for wall in range(wall): 
     height = input("height of wall:") 
     height = int(height) 
     width = input("width of wall:") 
     width = int(width) 
     sa = int(height) * int(width) 
    tsa += sa * int(numofwalls) * int(numofwalls) 

您只需在每個循環中總計tsa,而不是每次重置它。你很近。

+0

謝謝你...那真的有幫助 – Seyi

+0

如果我運行代碼將它工作 – Seyi

+0

我是這麼認爲的。我沒有測試它。 – Adam