-
[C++] 2차원 배열에서 최대, 최소값 구하기C++/문제풀이 2022. 6. 14. 19:41
실습 9-1
2차원 배열에서 최대, 최소값 구하기
[조건]
const int ROW = 4, COL = 3; void printArray(int inumbers[][COL], int rowSize); int Min, Max; void findMinMax(int inumbers[][3], int rowSize);
최댓값, 최솟값을 저장하는 변수를 전역 변수로 지정
// // main.cpp // // Created by yeonsu on 2022/06/14. // // 2차원 배열에서 최대, 최소값 구하기(4행 3열) #include <iostream> #include <ctime> //rand 함수 #include <iomanip> const int ROW = 4, COL = 3; void printArray(int inumbers[][COL], int rowSize); int Min, Max; void findMinMax(int inumbers[][3], int rowSize); using namespace std; int main(){ int array[ROW][COL] = {10, 20, 40, 50, 80, 100, 70, 15, 60, 22, 33, 44}; printArray(array, ROW); findMinMax(array, ROW); cout << "최솟값: " << Min << ", 최댓값: " << Max << endl; return 0; } void printArray(int inumbers[][COL], int rowSize){ cout << "==================" << endl; for (int i = 0; i<rowSize; i++){ for(int j = 0; j < COL; j++) cout << setw(5) << inumbers[i][j]; cout << endl; } cout << "==================" << endl; } void findMinMax(int inumbers[][3], int rowSize){ Min = inumbers[0][0]; Max = inumbers[0][0]; for (int i = 0; i<rowSize; i++){ for(int j = 0; j < COL; j++){ if (Min > inumbers[i][j]) Min = inumbers[i][j]; if (Max < inumbers[i][j]) Max = inumbers[i][j]; } } }
실행 결과
Key Point
이차원 배열을 함수의 실매개변수로 사용할 때 함수 정의 시 첫 번째 인덱스 크기를 제외한 나머지 인덱스 크기는 반드시 적어주어야 한다. 따라서 void printArray(int [ (생략 가능) ][COL] 이렇게 배열의 이름을 쓴 뒤, 배열의 크기를 쓸 때는 이미 COL(열의 크기)는 명시를 해줬기 때문에 ROW(행의 크기)만 작성해주면 된다.
'C++ > 문제풀이' 카테고리의 다른 글
[C++] 두 행렬의 곱 구하기(3x3) (0) 2022.06.14 [C++] 난수 발생 시킨 뒤, 숫자의 출현 빈도수 세기(이차원 배열) (0) 2022.06.14 [C++] ⭐️100개의 임의의 정수(0~0)발생시킨 후 숫자의 출현 빈도수 세기 (0) 2022.06.14 [C++] 배열을 역순으로 만들기 (0) 2022.06.14 [C++] 연도를 입력한 뒤 월별 일수 출력하기 (0) 2022.06.14