본문 바로가기
C 언어

c 언어[023] 배열 원소값 입력하고 배열 원소중 최대값(Max), 최소값(Min) 출력

by Smart Factory in 2020 2021. 10. 2.
728x90
반응형

안녕하세요. 스마트 팩토리입니다. 

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;
}
728x90
반응형

댓글