-
[C++] 배열과 포인터(*)를 이용하여 최대, 최소 구하기C++/문제풀이 2022. 5. 29. 21:57
[문제]
C++ 200제 044번
배열과 포인터(*)를 이용하여 최대, 최소 구하기
- *를 인자로 사용하는 함수를 이용하여 최대, 최소를 구해보자.
[기존 코드]
// // main.cpp // // // Created by yeonsu on 2022/05/28. // #include <iostream> #include <cstdlib> #include <iomanip> using namespace std; int findMax(int x[], int n){ int max; max = x[0]; // 배열의 첫 번째 원소가 최댓값이라고 가정 for (int i = 0; i < n; i++) { if (x[i] > max) max = x[i]; } return max; } int findMin(int y[], int n){ int min; min = y[0]; for(int i = 0; i<n; i++){ if (y[i] < min) min = y[i]; } return min; } int main(){ int random[10]; srand((unsigned int)time(NULL)); //난수 생성 for(int i = 0; i<9; i++){ random[i] = rand()%10; cout << random[i] << setw(5); } cout << endl << endl; int Max = findMax(random, 10); int Min = findMin(random, 10); cout << "최댓값은 " << Max << endl; cout << "최솟값은 " << Min << endl; return 0; }
[배열과 포인터]
// // main.cpp // // // Created by yeonsu on 2022/05/28. // #include <iostream> #include <cstdlib> #include <iomanip> using namespace std; int findMax(int *x, int n){ int max; max = *(x+0); // 배열의 첫 번째 원소가 최댓값이라고 가정 for (int i = 0; i < n; i++) { if (*(x+i) > max) max = *(x+i); } return max; } int findMin(int *y, int n){ int min; min = *(y+0); for(int i = 0; i<n; i++){ if (*(y+i) < min) min = *(y+i); } return min; } int main(){ int random[10]; srand((unsigned int)time(NULL)); //난수 생성 for(int i = 0; i<9; i++){ random[i] = rand()%10; cout << random[i] << setw(5); } cout << endl << endl; int Max = findMax(random, 10); int Min = findMin(random, 10); cout << "최댓값은 " << Max << endl; cout << "최솟값은 " << Min << endl; return 0; }
[실행결과]
Key Point
x[i] = *(x+i)
for (int i = 0; i < n; i++) { if (x[i] > max) max = x[i]; }
for (int i = 0; i < n; i++) { if (*(x+i) > max) max = *(x+i); }
'C++ > 문제풀이' 카테고리의 다른 글
[C++] 극장 좌석 예약 시스템(2차원 배열) (0) 2022.06.13 [C++] 2차원 배열을 이용하여 3개 학급 학생들의 평균 성적 구하기 (0) 2022.06.13 [C++] 2차원 배열 원소들의 합 구하기(난수 이용) (0) 2022.06.13 [C++] rand와 배열을 이용하여 임의의 수를 역순으로 출력하기 (0) 2022.05.26 [C++] 함수를 이용하여 커피잔 수 구하기 (0) 2022.05.25