close
題目:
輸入一些成績
算平均
用swap求最低分
輸出結果

#include <cstdlib>
#include <iostream>

using namespace std;

void my_in(int n,int *grade);
void my_out(int n,int *grade,float av,int low);
float my_av(int n,int *grade);
void my_swap(int &a,int &b);


int main(int argc, char *argv[])
{  
    int n;
    int low,i,b;
    int grade[30];
    float av;
    cout << "請輸入有幾筆成績(最多30筆):" <<endl;
    cin >> n; 
    //輸入
    my_in(n,grade);
    //平均
    av = my_av(n,grade);
    //SWAP
    low = grade[0];
    for(i=1;i<n;i++){
    b = grade[i];
    my_swap(low,b);
    }
    
    //輸出
    my_out(n,grade,av,low);
    system("PAUSE");
    return EXIT_SUCCESS;
}
void my_in(int n,int *grade){
     int i;
     for(i=0;i<n;i++){
     cout <<"輸入第" << i << "筆成績: ";
     cin >> grade[i];
     }
      
     }
void my_out(int n,int *grade,float av,int low){
     int i;
     for(i=0;i<n;i++){
     cout <<"輸入第" << i << "筆成績: ";
     cout << grade[i] << endl;
     }
     cout << "平均成績: "<< av << endl;
     cout << "最低成績: "<< low << endl;
     
     }
float my_av(int n,int *grade){
      int i;
      float av=0;
     for(i=0;i<n;i++){
      av+=grade[i];
     }
     av = av/n;
     return av;
      }
void my_swap(int &a,int &b){
     int temp;
     if(a>b){
             temp = a;
             a = b;
             b = temp;
     }
}
---------------------------------------------
解釋 :
輸入成績的時候 , 傳資料數跟陣列
我的寫法是把array看成pointer...
不知道能不能懂~~

平均是傳進去算完再傳回來

Swap就是把 low = grade[0]
然後和b一起傳過去
透過交換的動作比大小...
最後low一定會是最小的...

然後再把要輸出的東西丟到output去印出來

arrow
arrow
    全站熱搜

    Rick Lu 發表在 痞客邦 留言(0) 人氣()