Advertisement
brilliant_moves

ArrayAverager.java

May 5th, 2015
455
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 1.82 KB | None | 0 0
  1. public class ArrayAverager {
  2.  
  3.     public static int[][] makeAvArray(int[][] theArray) {
  4.         int rows = theArray.length;
  5.         int cols = theArray[0].length;
  6.         int[][] avArray = new int[rows][cols];
  7.  
  8.         int sum;
  9.         int neighbours;
  10.  
  11.         for (int r=0; r<rows; r++) {
  12.             for (int c=0; c<cols; c++) {
  13.                 sum = theArray[r][c];
  14.                 neighbours = 1; // itself
  15.                 if (c>0) {
  16.                     sum += theArray[r][c-1];
  17.                     neighbours++;
  18.                     if (r>0) {
  19.                         sum += theArray[r-1][c];
  20.                         sum += theArray[r-1][c-1];
  21.                         neighbours+=2;
  22.                     }
  23.                     if (r<rows-1) {
  24.                         sum += theArray[r+1][c];
  25.                         sum += theArray[r+1][c-1];
  26.                         neighbours+=2;
  27.                     }
  28.                 } // if c
  29.                 if (c<cols-1) {
  30.                     sum += theArray[r][c+1];
  31.                     neighbours++;
  32.                     if (r>0) {
  33.                         sum += theArray[r-1][c];
  34.                         sum += theArray[r-1][c+1];
  35.                         neighbours+=2;
  36.                     }
  37.                     if (r<rows-1) {
  38.                         sum += theArray[r+1][c];
  39.                         sum += theArray[r+1][c+1];
  40.                         neighbours+=2;
  41.                     }
  42.                 } // if c
  43.                 avArray[r][c] = sum/neighbours;
  44.             } // for c
  45.         } // for r
  46.  
  47.         return avArray;
  48.  
  49.     } // makeAvArray()
  50.  
  51.     public static void displayArray(int[][] array) {
  52.         for (int r=0; r<array.length; r++) {
  53.             for (int c=0; c<array[0].length; c++) {
  54.                 System.out.print(array[r][c]+" ");
  55.             } // for c
  56.             System.out.println();
  57.         } // for r
  58.     } // displayArray()
  59.  
  60.     public static void main(String[] args) {
  61.         final int ROWS = 3;
  62.         final int COLS = 4;
  63.         int[][] array = new int[ROWS][COLS];
  64.  
  65.         int n=1;
  66.         // for test example, number in ascending order
  67.         for (int r=0; r<ROWS; r++) {
  68.             for (int c=0; c<COLS; c++) {
  69.                 array[r][c] = n++;
  70.             } // for c
  71.         } // for r
  72.  
  73.         System.out.println("Original array:\n");
  74.         displayArray( array);
  75.         System.out.println("\nArray of averages:\n");
  76.         displayArray( makeAvArray( array));
  77.     } // main()
  78.  
  79. } // class ArrayAverager
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement