소개
이 랩에서는 재귀를 사용하여 배열에서 가장 큰 요소를 찾는 과정을 안내합니다. C 프로그램은 사용자에게 배열의 크기를 입력하라는 메시지를 표시한 다음, 배열의 요소를 입력받고, 배열의 가장 큰 요소를 출력합니다.
이 랩에서는 재귀를 사용하여 배열에서 가장 큰 요소를 찾는 과정을 안내합니다. C 프로그램은 사용자에게 배열의 크기를 입력하라는 메시지를 표시한 다음, 배열의 요소를 입력받고, 배열의 가장 큰 요소를 출력합니다.
먼저, ~/project/ 디렉토리에 main.c라는 새 파일을 생성합니다. 그런 다음, 아래 코드를 복사하여 파일에 붙여넣습니다. 이 코드는 이 랩을 완료하는 데 필요한 모든 코드를 포함합니다.
#include<stdio.h>
#define MAX 100
int getMaxElement(int []); // takes array of int as parameter
int size;
int main()
{
printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
int arr[MAX], max, i;
printf("\n\nEnter the size of the array: ");
scanf("%d", &size);
printf("\n\nEnter %d elements\n\n", size);
for(i = 0; i < size; i++)
{
scanf("%d", &arr[i]);
}
max = getMaxElement(arr); // passing the complete array as parameter
printf("\n\nLargest element of the array is %d\n\n", max);
printf("\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}
int getMaxElement(int a[])
{
static int i = 0, max =- 9999; // static int max=a[0] is invalid
if(i < size) // till the last element
{
if(max < a[i])
max = a[i];
i++; // to check the next element in the next iteration
getMaxElement(a); // recursive call
}
return max;
}
이 C 프로그램은 main()과 getMaxElement()의 두 가지 함수로 구성됩니다.
main()arr이라는 배열을 선언하고, 배열의 가장 큰 요소를 저장하기 위한 max 변수와 함수의 반복을 유지하기 위한 i 변수를 초기화합니다.getMaxElement() 함수를 호출하고 arr이라는 배열을 매개변수로 전달합니다.max 변수에 저장된 배열의 가장 큰 요소를 출력합니다.getMaxElement()이것은 배열의 가장 큰 요소를 반환하는 재귀 함수입니다.
i를 선언하고 0 으로 초기화하며, 배열의 가장 큰 요소를 저장하기 위해 정적 값 max를 선언하고 매우 작은 값 -9999로 초기화합니다.i의 값이 배열의 크기보다 작은지 확인합니다.i번째 요소의 값이 현재 max 값보다 크면, max의 값을 배열의 i번째 요소로 업데이트합니다.i를 다음 요소로 설정하고 getMaxElement() 함수를 호출하여 이 함수를 재귀적으로 만듭니다.코드를 컴파일하고 실행하려면 ~/project/ 디렉토리에서 터미널을 열고 아래 단계를 따르세요.
gcc main.c를 입력하여 코드를 컴파일합니다../a.out를 입력하여 프로그램을 실행합니다.ENTER 키를 누릅니다.ENTER 키를 누릅니다.#include<stdio.h>
#define MAX 100
int getMaxElement(int []); // 정수 배열을 매개변수로 받음
int size;
int main()
{
printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
int arr[MAX], max, i;
printf("\n\n배열의 크기를 입력하세요: ");
scanf("%d", &size);
printf("\n\n%d개의 요소를 입력하세요\n\n", size);
for(i = 0; i < size; i++)
{
scanf("%d", &arr[i]);
}
max = getMaxElement(arr); // 전체 배열을 매개변수로 전달
printf("\n\n배열의 가장 큰 요소는 %d입니다\n\n", max);
printf("\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}
int getMaxElement(int a[])
{
static int i = 0, max =- 9999; // static int max=a[0] is invalid
if(i < size) // 마지막 요소까지
{
if(max < a[i])
max = a[i];
i++; // 다음 반복에서 다음 요소를 확인하기 위해
getMaxElement(a); // 재귀 호출
}
return max;
}
잘하셨습니다! 재귀를 사용하여 배열에서 가장 큰 요소를 찾는 방법에 대한 이 랩을 성공적으로 완료했습니다. 이제 재귀를 사용하여 배열의 가장 큰 요소를 찾는 방법에 대한 훌륭한 이해를 갖게 되셨을 것입니다. 수고하셨습니다!