반응형
배열에서 최댓값과 최솟값 찾기
사용자로부터 정수 배열의 크기와 각 원소를 입력받아, 해당 배열에서 최댓값과 최솟값을 찾고 출력하는 프로그램을 작성하세요.
사용 개념:
배열
반복문 (for)
조건문 (if)
표준 입출력 (scanf, printf)
풀이 방법
- 배열 크기 입력받기
- 배열의 크기를 scanf를 사용해 입력받습니다.
- 배열 원소 입력받기
- for 반복문을 사용해 배열의 각 원소를 입력받습니다.
- 최댓값과 최솟값 초기화
- 최댓값과 최솟값 변수를 배열의 첫 번째 원소로 초기화합니다.
- 최댓값과 최솟값 찾기
- for 반복문으로 배열을 순회하며 각 원소를 최댓값 및 최솟값 변수와 비교합니다.
- 현재 값이 최댓값보다 크다면 최댓값을 업데이트, 최솟값보다 작다면 최솟값을 업데이트합니다.
- 결과 출력
- 최댓값과 최솟값을 printf를 사용해 출력합니다.
코드 예시
#include <stdio.h>
int main() {
int n; // 배열 크기
printf("배열의 크기를 입력하세요: ");
scanf("%d", &n);
int arr[n]; // 배열 선언
printf("배열의 원소를 입력하세요:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]); // 배열 원소 입력
}
// 최댓값과 최솟값 초기화
int max = arr[0];
int min = arr[0];
// 배열 탐색
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i]; // 최댓값 업데이트
}
if (arr[i] < min) {
min = arr[i]; // 최솟값 업데이트
}
}
// 결과 출력
printf("배열의 최댓값: %d\n", max);
printf("배열의 최솟값: %d\n", min);
return 0;
}
코드 설명
1. 배열 크기 입력 받기
- scanf를 사용해 배열의 크기를 입력받습니다.
printf("배열의 크기를 입력하세요: ");
scanf("%d", &n);
2. 배열 원소 입력 받기
- for 반복문으로 배열의 각 원소를 입력받습니다.
printf("배열의 원소를 입력하세요:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
3. 최댓값과 최솟값 초기화
- max, min 변수를 배열의 첫 번째 원소로 초기화합니다.
int max = arr[0];
int min = arr[0];
4. 최댓값과 최솟값 찾기
- 배열의 두 번째 원소부터 시작해 각 원소를 탐색
- if문으로 최댓값 최솟값 최신화
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
5. 결과 출력
printf("배열의 최댓값: %d\n", max);
printf("배열의 최솟값: %d\n", min);
6. 실행 결과 예시
배열의 크기를 입력하세요: 5
배열의 원소를 입력하세요:
10
20
5
30
15
배열의 최댓값: 30
배열의 최솟값: 5
배열에서 max, min 인덱스도 출력할 수 있고 음수와 양수 비율 계산 프로그램등으로도 추가할 수 있습니다.
반응형
'프로그래밍 > C' 카테고리의 다른 글
[C언어-응용문제] 문자열에서 특정 문자의 개수 세기 (0) | 2024.11.21 |
---|---|
[C언어-응용문제] 동적 메모리 할당을 사용한 배열 평균 구하기 (0) | 2024.11.11 |
[C언어-응용문제] 파일에 텍스트 저장 및 읽기 (1) | 2024.11.10 |
[C언어-응용문제] 학생 점수 관리 프로그램 (구조체 문제) (1) | 2024.11.09 |
[C언어-응용문제] 숫자의 합 구하기(for, while) (1) | 2024.11.08 |