반응형
1차원 배열에서 정렬을 사용하지 않고, 최대값과 2번째로 큰 값을 찾는 프로그램은 C언어와 C++ 언어로 작성했습니다.
1차원 배열은 10개의 요소를 갖는 크기이며, 랜덤하게 0~100까지의 수를 채우도록 했습니다.
C언어
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
int main() {
int n; // 배열의 크기
int arr[N] = { 0 };
// 난수 발생기를 시간에 따라 초기화
srand(time(NULL));
// 배열에 랜덤한 정수값 채우기
for (int i = 0; i < N; i++) {
arr[i] = rand() % 101; // 0~100사이의 랜덤한 정수값 생성
}
// 채워진 배열 출력
for (int i = 0; i < N; i++) {
printf("%d ", arr[i]);
}
int max = arr[0]; // 최대값
int secondMax = arr[0]; // 두 번째로 큰 값
// 최대값 찾기
for (int i = 1; i < N; i++) {
if (arr[i] > max) {
secondMax = max; // 현재 최대값을 두 번째로 큰 값으로 설정
max = arr[i]; // 현재 원소를 최대값으로 설정
}
else if (arr[i] > secondMax && arr[i] < max) {
secondMax = arr[i]; // 현재 원소를 두 번째로 큰 값으로 설정
}
}
printf("\n");
printf("최대값: %d\n", max);
printf("두 번째로 큰 값: %d\n", secondMax);
return 0;
}
실행할 때마다 배열에는 다른 값으로 채워집니다.
이 프로그램은 최대값이 2개 이상이면, 그 다음으로 큰 값이 출력됩니다.
C++ 언어
#include <iostream>
#include <cstdlib> // rand() 함수를 사용하기 위한 헤더
#include <ctime> // time() 함수를 사용하기 위한 헤더
using namespace std;
int main() {
const int arraySize = 10; // 배열 크기 (원하는 크기로 조절 가능)
// 랜덤 시드 초기화
srand(static_cast<unsigned int>(time(0)));
// 1차원 배열 선언 및 랜덤 값으로 초기화
int numbers[arraySize];
for (int i = 0; i < arraySize; ++i) {
numbers[i] = rand() % 101; // 0에서 100까지의 랜덤 정수값
}
// 배열 출력
cout << "배열 값: ";
for (int i = 0; i < arraySize; ++i) {
cout << numbers[i] << " ";
}
cout << endl;
// 최대값 및 2번째로 큰 값 찾기
int maxVal = -1;
int secondMaxVal = -1;
for (int i = 0; i < arraySize; ++i) {
if (numbers[i] > maxVal) {
secondMaxVal = maxVal;
maxVal = numbers[i];
} else if (numbers[i] > secondMaxVal && numbers[i] < maxVal) {
secondMaxVal = numbers[i];
}
}
// 결과 출력
cout << "최대값: " << maxVal << endl;
cout << "2번째로 큰 값: " << secondMaxVal << endl;
return 0;
}
반응형
'C_C++' 카테고리의 다른 글
(C언어) 구조체를 이용한 성적처리 프로그램, 총점 평균 석차 구하기 (3) | 2024.01.10 |
---|---|
(C/C++) 카운트다운 게임: 정해진 시간 이내에 숫자 맞히기 (82) | 2024.01.06 |
(C언어) 삼각형의 종류 판단하기: 직각, 둔각, 예각 삼각형 (80) | 2023.12.14 |
(C++) 숫자 맞추기 게임: 클래스 이용 (63) | 2023.12.07 |
(C++) 클래스 기초: 차량 정보 표현하기 (45) | 2023.12.03 |