1. 程式人生 > >函式與陣列

函式與陣列

例題:編寫一個程式,要求使用者輸入最多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:陣列名做引數。形,實引數都是陣列名,型別要一樣。