1樓:匿名使用者
既然你要詳細解釋,我就從題目開始來分析:
題目要求函式能幹3件事:
1、計算出平均分;2、統計低於平均分的人數;3、把低於平均分的分數儲存在另乙個陣列中
我們來分析一下:
首先,要做到這些是就必須遍歷陣列中的每乙個元素,因此迴圈是必須的,而且對於這種迴圈次數已知的問題(陣列元素數為9),我們一般會用for迴圈
其次,在設計程式的時候我們應遵守一項原則,盡量少地使用for迴圈的個數,尤其最好能避免for迴圈的巢狀問題(這道題顯然不需要)。因此,我們想一想用一次for迴圈是否能完成這3個任務。顯然是不行的,因為如果不計算出總的得分我們就無法得到平均分(任務1),進而就無法比較哪些低於平均分(任務2,3)。
所以乙個迴圈是不夠的,只能用兩個迴圈。
最後,我們來設計這兩個迴圈。第乙個迴圈只做一件事,就是把陣列中的每個元素依次相加得到總成績。迴圈結束以後我們就可以計算出平均分了。
接著我們發現任務2和3可以同時在第二個迴圈中進行,先判斷每個元素是否小於平均數,如果小於,就把它存入新陣列並且把用於統計人數的變數j自增,於是迴圈結束後我們所需要的人數和新陣列就都得到了
純手打,加個人分析
2樓:匿名使用者
這裡for用了兩次是你解題的需要,
第一次for迴圈,將所有分數加和,然後算出平均分;
第二次for迴圈,將所有分數跟平均分對比,低於平均分的放到below陣列中;
具體要用到幾個for迴圈,就看解題的需要(正如此題)。
3樓:匿名使用者
本題中兩次for是分開的,彼此沒有關係,刪除乙個不影響另乙個,不是for循壞的疊加
一次迴圈用乙個for,這個迴圈裡面的每一項還有乙個迴圈,再用乙個for,迴圈下有迴圈再用……
比如乙個級有5個班,用乙個for,乙個班有四組,第乙個for迴圈中疊加第二個for迴圈,一組中有12人,疊加第三個for……
其實for迴圈多次使用的問題不用考慮,使用很自然的事,該用時水到渠成
j**a程式設計時,什麼情況下使用try 。。catch。。語句?求詳解!
4樓:雲夢倩欣
需要捕捉異常的情況時使用!
c語言程式修改題。switch語句的每句case語句後為什麼不需要加break?求詳解
5樓:2b丶xiao年輕
系統讀到return就會結束當前函式,讀到break只是跳出swich而已。你如果加break,fun函式的結果都是 fun(g-1)+fun(g-2)
c語言程式修改題。switch語句的每句case語句後為什麼不需要加break?求詳解
C語言關於迴圈中包含靜態變數,c語言for迴圈裡,static變數也能儲存值嗎?為什麼?
首先,要知道作用域的概念。c有 塊作用域,檔案作用域和函式原型作用域。詳細內容書裡面可以講一章,涉及到鏈結型別,作用域,儲存時期。這裡只說一點,你可能比較關心,看下面這個例子 include char a global void global void local int main global 將...
c語言裡關於迴圈的問題,兩個個關於C語言迴圈跳出的問題?
飛貓警長 從上面的 來看,程式的意圖好像是從鍵盤輸入若干個數字,然後輸出它們的和。這種情況一般有兩種解決方法,乙個是在輸入前確定數字個數,另乙個是設定乙個 或多個 特別的數字 或其他字元 作為輸入結束條件。上面的 屬於第二種解決方案,當輸入的數字大於或等於99時,迴圈將結束。對於不知道迴圈次數的情況...
C語言中,關於while迴圈的問題
include int main int argc,char argv 我在解釋一下,昨天沒說清楚。就算你只輸入了乙個a,這個時候scanf掃瞄緩衝區,發現不是整形,所以直接退出,指標仍舊指在a的位置,下次scanf呼叫的時候,指標仍舊指在a這裡,所以scanf不等待你輸入,但是a不是整數,又直接退...