題目:
輸入一些成績
算平均
用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去印出來