Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C 언어에서 값으로 배열 전달하기 – 평균 계산 예제

C 언어에서는 배열을 함수의 인자로 전달할 수 있습니다. 다음은 배열을 함수에 넘겨 평균값을 계산하는 예제입니다.

예제 코드

#include <stdio.h>
float avg(float a[]) {
    int i;
    float avg, sum = 0.0;

    for (i = 0; i < 6; ++i) {
        sum += a[i];
    }
    avg = (sum / 6);

    return avg;
}
int main() {
    float avg1, a[] = {63,21,34.4,12.5,3,2.2};
    avg1 = avg(a);
    printf("Average : %f", avg1);
    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Average : 22.683332

코드 설명

위 프로그램에서 평균을 계산하는 실제 로직은 avg() 함수 안에 구현되어 있습니다. 이 함수는 float형 배열을 매개변수로 받으며, for 루프를 사용해 배열의 모든 요소를 더한 뒤 요소 개수인 6으로 나누어 평균을 구하고 그 값을 반환합니다.

float avg(float a[]) {
    int i;
    float avg, sum = 0.0;

    for (i = 0; i < 6; ++i) {
        sum += a[i];
    }
    avg = (sum / 6);

    return avg;
}

main() 함수에서는 배열 a를 초기화한 후, 이 배열을 인자로 전달하며 avg() 함수를 호출합니다. 반환된 평균값은 변수 avg1에 저장되고, printf()를 통해 화면에 출력됩니다.

float avg1, a[] = {63,21,34.4,12.5,3,2.2};
avg1 = avg(a);

참고 사항

C 언어에서 배열 이름은 함수 인자로 전달될 때 자동으로 해당 배열의 시작 주소를 가리키는 포인터로 변환(decay)됩니다. 즉, 엄밀히 말하면 배열 전체가 복사되어 전달되는 것이 아니라 배열의 주소값이 복사되어 넘어갑니다. 그렇기 때문에 함수 내부에서는 배열의 실제 크기를 알 수 없으므로, 위 예제처럼 반복 횟수를 상수(6)로 지정하거나, 배열의 크기를 별도의 매개변수로 함께 전달하는 방식이 일반적으로 사용됩니다.