2009年3月16日 星期一

Lab Finding the max of a list of numbers

Based on your study of Display 3.8, write a code to find the max and min of a list of number.
For example, given 1,3,5, and9, the max is 9 and the min is 1.
Your program should be able to process a list of any length.




2 則留言:

  1. 蒼羽 -- 飛べない翼に意味はあるんでしょうか…   你服那兵役會可憐,我就從此不再萌蘿莉= =   1:0.351 說:
    (準備上課去O_Oノシ)
    [季軒] 說:
    O_Oノシ)
    [季軒] 說:
    再JAVA中藥怎麼讓三個輸入互相比較
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    比較什麼O_O??
    [季軒] 說:
    a b c的大小病排序
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    所以重點是排序?

    如果只有三個東西的話直接用if else解決就可以了吧
    [季軒] 說:
    =口=
    [季軒] 說:
    要手動比較6種組合這樣?
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    三個東西是當作參數傳進一個Method嗎?
    (話說那三個東西的型別是?)
    [季軒] 說:
    input
    [季軒] 說:
    為int
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    是array嗎?
    還是分開的三個參數?
    [季軒] 說:
    手動輸入
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    =口=

    那...你輸出的東西是?

    印在螢幕上、已經排序好的三個int?
    還是要return給呼叫他的method?
    [季軒] 說:
    決定MAX和MIN並輸出
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    那...應該是輸出在螢幕上

    這樣的話建議把三個參數都用一個array存下來
    之後看是要用bubble sort還是selection sort那些簡單的排序去排那個array
    然後再把array裡面的第一個跟最後一個參數拿出來
    其中一個就是最大、另一個就是最小(根據你sort裡面的判斷式會決定哪個是最大、哪個是最小)
    [季軒] 說:
    哩低工蝦
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    (囧
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    呃....首先
    三個手動輸入的參數、先都依序放在一個int的array裡

    以上OK嗎??
    [季軒] 說:
    NO
    [季軒] 說:
    ARRAY是啥?
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    矩陣還陣列,我忘了O_O
    不是matrix
    [季軒] 說:
    int max = number[0];
    [季軒] 說:
    這ㄍㄛ
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    int a = 10;

    int [] b = new int[3];
    b[0] = 1;
    b[1] = 3;
    b[2] = 2;
    b[3] = 5; //這個會出錯
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    右邊那個number就是型別為int的array
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    所以你們是用array在存囉?
    一個叫做number的int array?
    [季軒] 說:
    不知道
    [季軒] 說:
    老師沒教ARRAY
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    你收集到的三個數字會放在number[0]、number[1]、number[2]這三個地方?
    [季軒] 說:
    他叫我們看課本自己打
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    照上面看的感覺是這樣
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    那輸入的部份你OK嗎?
    [季軒] 說:
    a = keyboard.nextInt();
    b = keyboard.nextInt();
    c = keyboard.nextInt();
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    就是怎麼樣從鍵盤獨進數字
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    (囧)
    所以輸入存放在三個不同的變數裡...
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    如果不管他那麼多的話
    你直接用暴力解解6種組合也是可以= =;;

    如果要用到排序的話(考慮到未來可能題目會變成輸入4個數字)
    還是把輸入的數字都放在array裡面會比較好
    變成像下面那樣
    number[0] = keyboard.nextInt();
    number[1] = keyboard.nextInt();
    number[2] = keyboard.nextInt();
    [季軒] 說:
    number[]要怎麼定義?
    [季軒] 說:
    int []number?
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    然後用簡單的排序法來排序...

    int [] number = new int[3];

    number[0] = keyboard.nextInt();
    number[1] = keyboard.nextInt();
    number[2] = keyboard.nextInt();

    int i, j;
    for(i = number - 1; i >= 0; i--){
    for(j = 0; j < i; j++){
    if(number[j] > number[j + 1])
    swap(number[j], number[j + 1]);
    }
    }

    //經過這樣,最大的會在number[2], 最小會在number[0]
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    swap(int, int) 要另外寫
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    這行有問題
    for(i = number - 1; i >= 0; i--){

    改成
    for(i = number.length - 1; i >= 0; i--){

    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    這行就是宣告array
    int [] number = new int[3];

    後面[3]是他的大小

    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    兩層的for迴圈就是氣泡排序法
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    swap的功用是對調兩個int的內容
    [季軒] 說:
    swap另外寫是?
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    java沒有這個method
    所以自己要另外宣告一個method出來
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    不過要寫在for迴圈裡面也是可以
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    所以....目前你知道method怎麼宣告嗎?
    [季軒] 說:
    0.0
    [季軒] 說:
    N
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    嗯...那你剛剛的那些程式,都是寫在main()裡面嗎?
    [季軒] 說:
    嗯嗯
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    那就...

    把 int i, j; 這一行
    換成...
    int i, j, k;


    把swap的那一行
    換成...

    {
    k = number[j];
    number[j] = number[j + 1];
    number[j + 1] = k;
    }
    蒼羽 -- 飛べない翼に意味はあるんでしょうか…      1:0.351 說:
    這樣基本上就做完了OTL

    回覆刪除
  2. 阿ㄜ...忘了改程式碼把while的條件把count,3改成 != -1

    回覆刪除