很多同學(xué)在剛學(xué)習(xí)完數(shù)組以后,開(kāi)始習(xí)慣用數(shù)組去處理批量數(shù)據(jù)的問(wèn)題瘾境。但是容易陷入習(xí)慣性使用數(shù)組的誤區(qū)歧杏。
比如,某班有 名學(xué)生
科的考試成績(jī)迷守,在得到所有單科成績(jī)以后犬绒,要求我們求出這
科成績(jī)的平均分。顯然盒犹,初學(xué)者容易習(xí)慣性去定義一個(gè)二維數(shù)組
a[N][M]
懂更,將所有分?jǐn)?shù)的數(shù)據(jù)對(duì)應(yīng)保存以后,再使用 for
循環(huán)去挨個(gè)進(jìn)行加法處理急膀,最后除以 得到平均值沮协。
這種做法固然是沒(méi)有錯(cuò)的,但我們?cè)诰幊虝r(shí)候卓嫂,再仔細(xì)想想慷暂,我們是否需要使用二維數(shù)組來(lái)解決這個(gè)問(wèn)題呢?我們完全可以使用一個(gè)一維數(shù)組 sum[M]
晨雳,第 科到 第
科的分?jǐn)?shù)總和分別用
sum[0]
到 sum[M-1]
表示行瑞。
int sum[M];
for(int i = 0; i < N; i++){
for(int j = 0; j < M; j++){
int temp;
cin >> temp;
sum[j] += temp;
}
}
// 最后求平均分并輸出
for(int j = 0; j < M; j++){
cout << sum[j]/N << " ";
}
我們要意識(shí)到,使用數(shù)組的目的是為了保存數(shù)據(jù)餐禁,為接下來(lái)的多次運(yùn)算做準(zhǔn)備血久。如果說(shuō),我們讀取了數(shù)據(jù)帮非,只需要使用一次氧吐,以后都不會(huì)再需要它們讹蘑,那么我們完全可以在循環(huán)里使用臨時(shí)變量,讀取保存筑舅,處理完以后就 “拋棄” 它們座慰。
大家可以用心思考、體會(huì)一下翠拣。