안녕하세요. 스마트 팩토리입니다.
c 언어[023] 배열 원소값 입력하고 배열 원소중 최대값(Max), 최소값(Min) 출력에 대해 알아보겠습니다.
1. 배열 원소 최대값 출력
가. 최대값 출력
- 배열 첫번째 값을 최대로 놓고 비교해가는 구조
- 0번 인덱스를 최대값으로 놓고 1번 인덱스 부터 순차 비교하여 그 중에서 큰 값을 최대값으로 설정한다.
0번= Max
0번 > 1번 --> Max= 0번
0번< 2번--> Max=2 번으로 변경
2번과 3번이 비교되어 그 중 최대값이 Max가 됨.
- 이를 인덱스 마지막 번 까지 비교하여 그 중 최대값이 최대값이 됩니다.
배열은 원소의 자료형이 동일합니다. 인덱스 순으로 순차 비교하면서 가장 큰 값을 출력하면 됩니다.
int Max = arr[0];
첫번째 인덱스 수를 가장 크다고 가정하고 비교해 보면
for (int i = 1; i < n; i++) {
if (Max < arr[i]) {
Max = arr[i];
}
첫번째와 두번째를 비교해서 두번째가 크면 그 값이 최대값이 된다고 설정합니다.
같은 방식으로 최대값과 세번째, 그 중에 최대값이 선정되고 동일하게 최대값과 네번째 그 중에 큰 값이 최대값이 되면서 마지막 배열 원소와 비교해서 최대값을 출력하게 됩니다.
도식화 하지 않아도 잠시 생각해 보면 충분히 이해 할 수 있습니다.
#include<stdio.h>
int main() {
int n;
int arr[100];
printf("입력할 개수 :");
scanf_s("%d", &n);
for (int i = 0; i < n; i++) {
scanf_s("%d", &arr[i]);
}
printf("\n 큰 수 출력 \n");
int Max = arr[0];
for (int i = 1; i < n; i++) {
if (Max < arr[i]) {
Max = arr[i];
}
}
printf("최대값 : %d\n", Max);
return 0;
}
나. 최소값(MIin) 출력
- 배열 첫번째 값을 최소로 놓고 비교해가는 구조
- 0번 인덱스를 최소값으로 놓고 1번 인덱스 부터 순차 비교하여 그 중에서 작은 값을 최소값으로 설정한다.
0번= Min
0번 > 1번 --> Min= 1번으로 변경
1번< 2번--> Min=1 번 유지
1번과 3번이 비교되어 그 중 최소값이 Min가 됨.
- 이를 인덱스 마지막 번 까지 비교하여 그 중 최소가 최종 최소값이 됩니다.
최소값 같은 경우는 인덱스 0번을 최소값을 놓고 순차적으로 비교하여 작은 값을 최소값으로 놓으면 됩니다.
최대값과 거꾸로 된다고 보면 됩니다.
#include<stdio.h>
int main() {
int n;
int arr[100];
printf("입력할 개수 :");
scanf_s("%d", &n);
for (int i = 0; i < n; i++) {
scanf_s("%d", &arr[i]);
}
printf("\n Min 출력 \n");
int Min = arr[0];
for (int i = 1; i < n; i++) {
if (Min > arr[i]) {
Min = arr[i];
}
}
printf("최소값 : %d\n", Min);
return 0;
}
'C 언어' 카테고리의 다른 글
c 언어[025] 문자열과 배열(2) strlen 문자열크기, 배열크기 (0) | 2021.10.04 |
---|---|
c 언어[024] 문자열과 배열(1) 문자열 출력 char arr[100] = { 'H','e','l','l','o' }; char arr1[100] = "hello \n"; (0) | 2021.10.03 |
c 언어[022] 배열 숫자 입력하고 배열값 순차출력, 거꾸로 출력 (0) | 2021.10.01 |
c 언어[021] 배열 숫자 입력하고 그 입력한 값을 거꾸로 출력하는 코드- 배열의 크기=배열 요소의 개수 (0) | 2021.09.30 |
c 언어[020] 포인터 변수(메모리 주소를 가리키는 변수) (0) | 2021.09.28 |
댓글