1. 程式人生 > >java語言程式設計 第十版(基礎篇)8.1-5

java語言程式設計 第十版(基礎篇)8.1-5

8.1

Scanner input = new Scanner(System.in);
		double [][] m = new double [3][4];
		System.out.print("Enter a 3-by-4 matrix row by row");
		for(int i=0;i<m.length;i++)
			for(int j =0;j<m[i].length;j++) {
				m[i][j]=input.nextDouble();
			}
		
		for(int i=0;i<4;i++) {
			
			System.out.print("Sum of the elements at column "+i+" is "+sumColumn(m,i)+"\n");
		}

	}
	
	public static double sumColumn(double [][] m,int columnIndex) {
		double sum=0;
		for(int i=0;i<m.length;i++) {
			sum+=m[i][columnIndex];
		}
		
		return sum;
	}

8.2

public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		double [][] m = new double [4][4];
		System.out.print("Enter a 4-by-4 matrix row by row");
		for(int i=0;i<m.length;i++)
			for(int j =0;j<m[i].length;j++) {
				m[i][j]=input.nextDouble();
			}
		
		System.out.printf("%3.2f\n", sumMajorDiagonal(m));
	}

	public static double sumMajorDiagonal(double [][] m) {
		double sumMajorDiagonal=0;
		
		for(int i=0;i<m.length;i++)
			sumMajorDiagonal+=m[i][i];
			
		
		return sumMajorDiagonal;
	}

8.3

 public static void main(String args[]) {
		    // Students' answers to the questions
		    char[][] answers = {
		      {'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'},
		      {'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D'},
		      {'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D'},
		      {'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D'},
		      {'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D'},
		      {'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D'},
		      {'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'},
		      {'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D'}};

		    // Key to the questions
		    char[] keys = {'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D'};
		    int [] count = new int [8];

		    // Grade all answers
		    for (int i = 0; i < answers.length; i++) {
		      // Grade one student
		      int correctCount = 0;
		      for (int j = 0; j < answers[i].length; j++) {
		        if (answers[i][j] == keys[j])
		          correctCount++;
		      }

		      count[i]=correctCount;
		    
		    }
		 java.util.Arrays.sort(count);
		    
		    for(int i =0;i<count.length;i++) {
		    	  System.out.println("Student " + i + "'s correct count is " +
			        count[i]);
		    }
		    
		  }

8.4

public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[][] time = {
				{2,4,3,4,5,8,8},
				{7,3,4,3,3,4,4},
				{3,3,4,3,3,2,2},
				{9,3,4,7,3,4,1},
				{3,5,4,3,6,3,8},
				{3,4,4,6,3,4,4},
				{3,7,4,8,3,8,4},
				{6,3,5,9,2,7,9}
		};
		totalProductive(time);
		
		
	}
	
	public static void totalProductive(int [] []time) {
		int sum;
		int [] total= new int [8];
		for(int i=0;i<time.length;i++) {
			sum=0;
			for(int j =0;j<time[i].length;j++) {
				sum+=time[i][j];
			}
			total[i]=sum;
		}
	
	  java.util.Arrays.sort(total);
	  for(int i=0;i<total.length;i++) {
		  System.out.print(total[i] +" ");
	  }
		
					
		}

8.5

	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		double[][] arr1 = new double[3][3];
		double[][] arr2 = new double[3][3];
		System.out.print("Enter matrix1:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j)
				 arr1[i][j] = input.nextDouble();
		
		System.out.print("Enter matrix2:");
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j)
				 arr2[i][j] = input.nextDouble();
		
		 arr1 = addMatrix( arr1, arr2);
		
		for(int i = 0; i < 3; ++i){
			for(int j = 0; j < 3; ++j){
				System.out.print( arr1[i][j] + " ");
			}
			System.out.println();
		}
	}
	
	public static double[][] addMatrix(double[][] a, double[][] b){
		for(int i = 0; i < 3; ++i)
			for(int j = 0; j < 3; ++j)
				a[i][j] += b[i][j];
		return a;
	}