上堂課作業檢討
練習題(一) 計算三個數字最大值及平均
參數部分可否用int a,b,c代替int[ ] array ?
可,當數字過多時用陣列會是較佳的辦法參數部分可否用String[ ] array代替int[ ] array?
可,但較不建議
此處進行的是數值運算,我建議先將從edittext取得的string轉型成int再丟進array裡
比較不會誤導其他工程師,讓他們疑惑為什麼參數數值為String建議將average() 及 max()分開為兩個function
求最大值程式碼的部分有誤,針對此段程式碼進行檢討
//PURPOSE:學生程式碼
protected static int max(int array []){
int a[]=new int[3];
int max=0;
for(int i=0;i<a.length;i++){
a[i]=max; /*假設第一個數字即為Max*/
for(int j=i+1;j<a.length-1;j++){ /*跟下一個數字比較*/
if(a[j]>max){
max=a[j];
}
}
}
}
假設第一個數字為max的想法很好,但當我們在求一串數列裡的最大值的時候,只要拿最大值不斷的去跟數列裡每一個數進行比較就好
- 參數已傳進來裡面包含有比較數值的array[ ],所以下方a[ ]的部分應直接改使用array,不需要再new了
a[i]=max; 此行有問題
使用兩個迴圈有點太多了
應該改寫成
//PURPOSE:求一連串數值中的最大值
public static int max(int[] value){
int max;
max=value[0];
for(int i=1;i<value.length;i++){
if(value[i]>max){
max=value[i];
}
}
return max;
};