본문 바로가기
자바 코딩

메서드 구현 Coding 연습2

by akasha.park 2023. 3. 15.
Quiz5> 
3명 학생의 3과목 점수를 입력받아 각 과목별 학생별 총점을 출력하는 메서드를 정의하고 실행하시오.
(입력받은 3명 학생의 3과목 점수를 배열로 메서드에 전달해서  각 과목별 학생별 총점을 출력하는 메서드를 정의)
입력 예>  
50 80 100
96 88 66
100 85 90
출력 예> 
50 80 100 230
96 88 66 250
100 85 90 275
246 253 256 755

package lab.java.basic;

import java.util.Scanner;

public class Quiz5 {
    public void subjectTotal(int[][] subjects) {
      int[] subjectTotal = new int[3];//과목별 총합 저장할 배열
      for(int i=0;i<subjects.length;i++) {
    	   int total = 0; //학생의 과목 총점
    		for(int j=0;j<subjects[i].length;j++) {
    			total+=subjects[i][j];
    			subjectTotal[j] +=subjects[i][j]; 
    			System.out.print(subjects[i][j]+" ");    			 
        	}     	
    		System.out.println(total );    		
    	} 	
      int allTotal = 0; //3명의 학생의 모든 과목의 총합을 저장할 변수
      for(int i=0;i<subjectTotal.length;i++) {
    	  allTotal += subjectTotal[i];
    	  System.out.print(subjectTotal[i] +" ");  
      }
      System.out.print(allTotal +"\n"); 
    }
    
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("과목별 점수 입력>>");
		int[][] subjects = new int[3][3];
		for(int i=0;i<subjects.length;i++) {
    		for(int j=0;j<subjects[i].length;j++) {
    			subjects[i][j] = input.nextInt();
        	}     		 
    	} 
		Quiz5 q = new Quiz5();
		q.subjectTotal(subjects);
	}
}
#재귀호출 :  함수 내부에서 자신을 호출 
                반드시 재귀호출 중단 조건문 정의
Quiz1> 반복문을 사용하지 않고 자신의 이름을 10번 출력하는   재귀호출 메서드  구현 및 실행
package lab.java.basic;

public class Quiz1 {
      public void print(int n) {
    	  if(n==0) return;
    	  System.out.println("korea");
    	  print(n-1);
      }
	public static void main(String[] args) {
		Quiz1 q = new Quiz1();
         q.print(10);
	}

}

Quiz2>50 이하의 자연수 N을 입력받아 재귀함수를 이용하여 1부터 N까지의 정수를 차례대로 출력하는  재귀호출 메서드  구현 및 실행
package lab.java.basic;

import java.util.Scanner;

public class Quiz2 {
	 
      public void print(int n, int start) {  
    	  System.out.print((start) +" ");
    	  if (n==start) {
    		  return;
    	  }
    	  else {
    		  print(n, ++start);
    	  }
    	 
      }
	public static void main(String[] args) {
		Quiz2 q = new Quiz2();
		Scanner input = new Scanner(System.in);
		System.out.println("50이하의 자연수 입력>>");
		int n = input.nextInt();
        q.print(n, 1);
	}

}

Quiz3> 9자리 이하의 자연수를 입력받아 재귀함수를 이용하여 각 자리 숫자들의 합을 출력하는 재귀호출 메서드  구현 및 실행
입력 예>123456780
출력 예> 36
package lab.java.basic;

import java.util.Scanner;

public class Quiz3 {
	int total = 0;
	public int accumulate(int num) {		
		if (Integer.toString(num).length() == 1) {
			total += num;
			return total;
		} else {
			int temp = num % 10;
			total += temp;
			return accumulate(num / 10);
		}
	}

	public static void main(String[] args) {
		Quiz3 q = new Quiz3();
		Scanner input = new Scanner(System.in);
		System.out.println("9자리 이하의 자연수 입력>>");
		int num = input.nextInt();
		System.out.println(q.accumulate(num));
		 
	}

}

'자바 코딩' 카테고리의 다른 글

클래스, 메서드 Coding 연습3  (0) 2023.03.16
클래스 , 메서드 Coding 연습1  (0) 2023.03.16
메서드 정의, 구현 Coding 연습1  (0) 2023.03.15
배열, 메서드 코딩 연습  (1) 2023.03.14
배열 코딩 연습 3  (1) 2023.03.13