函式與陣列
阿新 • • 發佈:2018-12-28
例題:編寫一個程式,要求使用者輸入最多10個高爾夫球成績,並將其儲存在一個數組中,程式允許使用者提前結束輸入,並在一行上顯示所有成績,讓後報告所有成績,請使用3個數組處理函式來分別進行輸入,顯示和計算所有平均成績。 #iinclude<ipostream> const int MAX=10; usiing namespace std; int fill_ar(double ar[],int limit); void show_ar(const double ar[],int n);//【】表示陣列,且沒有內容,表示可以將任何陣列傳遞給該函 double average(const double ar[],int n);//數,使用了fill_ar.show_ar,定義平均值 int main()//main函式 { double scores[MAX];//定義成績中的最大值 int size=fill_ar(scores,MAX);//定義大小(最高成績) show_ar(scores,size);顯示平均成績大小 if(size>0)//使用if語句,在大小>0時輸出,以上使用陣列時,【】和函式的表示時函式與陣列結合的關 cout<<"The average of scores is:"<<average(scores,size)<<endl;//鍵 return 0; }//表示main函式結束 int fill_ar(double ar[],int limit) ( double temp;//定義函式temp(臨時),這裡表示變數 int i; for (i=0;i<limit;i++)<10個,最多10個成績 { cout << "Enter score #" <<i+1 << ": "; cin >> temp; if (!cin) { cin.clear(); while (cin.get() != '\n') continue; cout << "Bad input; enter a number: "; break; } if (temp < 0) break; ar[i] = temp; } return i; } void show_ar(const double ar[],int n) { for (int i = 0; i < n; i++) cout << "score #" << i+1 << ": " << ar[i] << endl; } double average(const double ar[], int n) { double sum = 0.0; for (int i = 0; i < n; i++) sum += ar[i]; return sum / n; } #include <iostream> using namespace std; double score[10]; int input(double [], int); void average(double [], int); void show(const double[], int); int main() { int size = input(score, 10); if (size > 0) { show(score, size); average(score, size); } cout << "Done.\n"; return 0; } int input(doublescore[],int limit) { double a; int i; for (i= 0; i < limit;i++) { cout << "Yourscore: "; cin >> a; if (!cin) { cin.clear(); while (cin.get()!= '\n') continue; cout << "Bad input; input process terminated.\n"; break; } else if (a< 0) break; score[i] = a; } return i; } void show(constdouble ar[],int n) { double total= 0.0; cout << "Score: "; for (int i= 0; i < n;i++) { cout << ar[i] << ""; } cout << endl; } void average(doublear[],int n) { doubleav,total= 0.0; int i; for (i= 0; i < n;i++) { total += ar[i]; } av = total / i; cout << "The average score: " << av << endl; } 1:陣列元素作為實參與單個變數一樣 2:陣列名做引數。形,實引數都是陣列名,型別要一樣。