恬然自得.活在當下: [功課]計算二維陣列中,每一列的總合和平均,與對角線的和

2010年10月22日 星期五

[功課]計算二維陣列中,每一列的總合和平均,與對角線的和

先貼上顯示結果:
89 72 54 1列的總和是2151列的平均是71
82 68 77 2列的總和是2272列的平均是75
56 64 77 3列的總和是1973列的平均是65
兩條對角線的總和是:412

版面配置大家覺得怎麼做比較好看再自己用吧~我的寫法只是提供參考,畢竟還是Java新手XD
另外最下面的註解,是老師說可以自己練習看看的項目,基本上大家可以把最下面多餘的註解刪掉 (註解要記得自己重新打過唷)

public class s11967046 {

    public static void main(String[] args) {
        // 11967046
        /*請設計一Java程式,宣告一個3X3的二維陣列
         * 陣列值是用亂數產生,範圍為50-90
         * 然後請計算每一列的"總和""平均"
         * 並且計算兩個對角線陣列元素的"總和"
        */
       

        int num [][]= new int[3][3]; //宣告一個3*3的二維陣列
        int sum = 0,average = 0,diagonal=0; /*sum是計算總合的變數
                                               average是計算平均的變數
                                               diagonal是計算對角線
                                                */
       
        for (int i =0;i<=2;i++){
            for(int j =0;j<=2;j++){
                //產生50-90的亂數
                num[i][j]=(int) ((Math.random()*41)+50);
                //計算總合
                sum+=num[i][j];
                //顯示結果
                System.out.print(num[i][j] +" ");
            }
            //計算平均
            average=sum/3;
            System.out.print(""+(i+1)+"列的總和是" + sum);
            System.out.print(""+(i+1)+"列的平均是" + average);
            System.out.println("");     //換行
            sum=0;  //前一列的總和歸零
        }
       
       
        diagonal = num[0][0]+num[0][2]+num[1][1]+num[1][1]+num[2][0]+num[2][2];
        System.out.print("兩條對角線的總和是:");
        System.out.println(diagonal);
       
        /*以下這段程式碼為老師要求使用for迴圈
        for (int i =0;i<num.length;i++){
            int j=i;    //[0][0],[1][1],[2][2]
            diagonal+=num[i][j];   //將左對角線相加
        }
       
        int j=0;
        for (int i =num.length-1;i>=0;i--){
                        //[2][0],[1][1],[0][2]
            diagonal+=num[i][j];   //將右對角線相加
            j++;
        }
       
        System.out.println(diagonal);
        */
    }

}

5 則留言:

  1. 就這麼貼上程式碼沒問題嗎?

    啊算了@_@...
    先辛苦羽龍大了要不然這麼「有挑戰性」的作業,憑我一個普通人根本做不來啊@_@

    回覆刪除
  2. 學弟好厲害

    再加油吧^^

    回覆刪除
  3. 原先文章的錯誤已修補^^

    回覆刪除

歡迎提供良性建議^_^