[자바] 강의시간 이것저것 05

오늘·2021년 3월 2일
0

문제풀기

목록 보기
7/24

min() max() 함수

  • min() : 입력받은 두 인자 값 중 가장 작은 값을 리턴하는 함수
  • max() : 입력받은 두 인자 값 중 가장 큰 값을 리턴하는 함수

입력되는 데이터 타입과 리턴 값의 데이터 타입은 같습니다. 입력된 data type에 따라 return data type이 결정됩니다.

사용예시

System.out.println(Math.max(1, 3));
// 실행결과 3 출력
System.out.println(Math.min(12, 30));
// 실행결과 12 출력

인자 값은 데이터 타입이 통일됩니다. (1, 0.2)라면 (int, double)타입이 아니라 큰 사이즈인 double형으로 통일되어 (1.0, 0.2)와 동일한 형태로 처리됩니다. 결과도 double형으로 출력됩니다.

System.out.println(Math.max(11, 4.5));
// 실행결과 11.0 출력

1. 배열 요소를 받아 총점과 평균을 구하세요

입력으로 정수 10개 받아 처리하기

int input[] = new int[12];
// 배열 선언하고 크기 지정하기
int avg = 0, hap = 0;
// 평균과 합을 구할것입니다. 선언과 동시에 초기화

Scanner sc = new Scanner(System.in);

for (int i = 0; i < input.length; i++) {
	input[i] = sc.nextInt();
	// input값을 Scanner로 받아 순서대로 저장합니다.
	hap += input[i];
}

avg = hap / input.length;
System.out.println("합 : " + hap);
System.out.println("평균 : " + avg);

2. 최대값과 최소값 구해 출력하기

max() min() 함수 사용x
실수 10개 받아서 요구사항 출력

double num[] = new double[10];
Scanner sc = new Scanner(System.in);

for (int i = 0; i < num.length; i++) {
	System.out.println("입력  > ");
	num[i] = sc.nextDouble();
}

double max = -9999.0, min = 9999.0;

for (int i = 0; i < num.length; i++) {
	if (max < num[i]) {
		max = num[i];
	}
}
for (int i = 0; i < num.length; i++) {
	if (min > num[i]) {
		min = num[i];
	}
}
System.out.println("최대값 : " + max);
System.out.println("최소값 : " + min);

3. 아래 그림과 같이 출력하시오

2차원 배열 사용
국어, 영어 값은 사용자에게 입력 받으시오

int sum = 0, avg = 0;
int sungjuk[][] = new int[5][6];
Scanner sc = new Scanner(System.in);

for (int i = 0; i < sungjuk.length; i++) {
// 행, 0~4행
	sungjuk[i][0] = i + 1;
	// 1,2,3 순서 넣어주기
	for (int j = 1; j < sungjuk[i].length - 3; j++) {
	// 열, 1 2열 만 입력해주면 되니까
		if (j == 1) {
			System.out.println(sungjuk[i][0] + "번 국어점수는? ");
			sungjuk[i][j] = sc.nextInt(); // 국어 점수 넣기
			sungjuk[i][3] += sungjuk[i][j]; // "합계" 에 누적
		} else {
			System.out.println(sungjuk[i][0] + "번 영어점수는?");
			sungjuk[i][j] = sc.nextInt(); // 영어 점수
			sungjuk[i][3] += sungjuk[i][j]; // 합계에 누적
		}
	}
}
// 평균값 구하기
for (int i = 0; i < sungjuk.length; i++) {
	sungjuk[i][4] = sungjuk[i][3] / 2;
}

// 석차 구하기
for (int i = 0; i < sungjuk.length; i++) {
	sungjuk[i][5] = 1;
	for (int j = 0; j < sungjuk.length; j++) {
		if (sungjuk[i][3] < sungjuk[j][3]) {
			sungjuk[i][5]++;
		}
	}
}

// 전체 출력하기
for (int i = 0; i < sungjuk.length; i++) {
	for (int j = 0; j < sungjuk[i].length; j++) {
		System.out.print(sungjuk[i][j] + "\t");
	}
	System.out.println();
}

4. 문자열 입력받아 알파벳 갯수세기

Scanner sc = new Scanner(System.in);
System.out.println("문자열 입력시 해당 알파벳 갯수 세어주는 프로그램");
System.out.println("문자열을 15글자 이하로 입력해주세요(단, 영어 소문자만)");
String word = sc.nextLine();

// 2. 알파벳 검색 갯수를 누적할 배열 선언
int count[] = new int[26];

// 3. 알파벳 a~z까지 1차원배열에 넣기
char alph[] = new char[26];
for (int i = 0; i < alph.length; i++) {
	alph[i] = (char) (97 + i); //아스키코드값
	// System.out.println(alph) // 올바르게 들어갔는지 확인
}
// for (char a : alph) {
// System.out.println(alph);
// }
// 이런식으로 확인도 가능

		
		
// 4. 문자열에 각 문자를 분할하여 문자로 넣는다.
char s;
for (int i = 0; i < 15; i++) {
	s = word.charAt(i); // 문자 하나한 떼서 s에 저장
	for (int j = 0; j < alph.length; j++) {
		// 알바벳이 들어있는 배열과 s문자를 비교해 count 배열에 누적해 넣는다.
		if (s == alph[j]) {
			count[j]++;
			break;
		}
	}
}

// 5. 3번과 4번을 비교해 0이 아닌 자료 출력
for (int i = 0; i < count.length; i++) {
	if (count[i] == 0) {
		continue;
	}
	System.out.println(alph[i] + "의 갯수 : " + count[i]);
}

0개의 댓글