求平均、最大值(運用陣列與函式)

這次是一樣輸入10個數值,求出最大值與平均值。

首先先用最簡易但卻不夠清楚條理分明的,雖然在執行上可能會比較有效率,但卻在撰寫時可能會造成不良的可讀性,若在程式量開始大時,在擴充與修改以及Debug方面可能會造成困擾甚至混亂等等。

簡易式運行可能有效率,但是可讀性不良與擴充較為不便:
#include<stdio.h>
int main(){
int i,n[10];
int sum=0,avg,max=n[0];
for(i=0;i<10;++i){
scanf("%d",&n[i]);
sum=sum+n[i];
if(n[i]>max){
max=n[i];
}
}
printf("%d\n",sum);
avg=sum/10;
printf("MAX: %d\nAVG: %d\n",max,avg);
return 0;
}


再來運用函式將其功能分開,條理分明許多:

#include<stdio.h>
int avg(int n[]);
int max(int n[]);

int main(){
int i,n[10];
for(i=0;i<10;++i){
scanf("%d",&n[i]);
}
printf("MAX: %d\nAVG: %d\n",max(n),avg(n));
return 0;
}

int avg(int n[10]){
int avg=n[0];
for(int i=1;i<10;++i){
avg=avg+n[i];
}
return avg/10;
}
int max(int n[10]){
int max=n[0];
for(int i=1;i<10;++i){
if(n[i]>max){
max=n[i];
}
}
return max;
}

程式是一種建立解決方式以及選擇解決路徑,有時候又需要規劃欲想未來式,多多練習思考多樣性有益於解讀條件與創造解決方式。

留言