C 언어로 데이터 집합의 평균 계산하기

CBeginner
지금 연습하기

소개

이 실습에서는 C 프로그래밍에서 데이터 집합의 평균을 계산하는 방법을 배웁니다. 이 실습은 다음 단계를 포함합니다.

  1. 사용자 입력에서 숫자 배열을 읽습니다.
  2. 숫자의 합을 계산하고, 숫자의 개수로 합을 나누어 평균을 계산합니다.
  3. 계산된 평균을 출력합니다.

이 실습은 C 에서 평균 계산 과정을 이해하는 데 도움이 되는 단계별 가이드와 예제 코드를 제공합니다. 이 실습을 마치면 C 프로그래밍을 사용하여 수치 데이터를 분석하고 요약하는 기술을 갖추게 될 것입니다.

숫자 배열 읽기

이 단계에서는 C 프로그래밍에서 숫자 배열을 읽는 방법을 배웁니다. 사용자가 숫자 집합을 입력하고 배열에 저장할 수 있도록 하는 간단한 프로그램을 만들 것입니다.

먼저 ~/project 디렉토리에 새로운 C 파일을 생성합니다.

cd ~/project
nano mean_calculation.c

이제 다음 코드를 입력합니다.

#include <stdio.h>

#define MAX_SIZE 100

int main() {
    int numbers[MAX_SIZE];
    int count;

    // 사용자에게 요소 개수를 묻습니다.
    printf("Enter the number of elements (max %d): ", MAX_SIZE);
    scanf("%d", &count);

    // 입력 유효성 검사
    if (count <= 0 || count > MAX_SIZE) {
        printf("Invalid number of elements!\n");
        return 1;
    }

    // 배열에 숫자를 읽습니다.
    printf("Enter %d numbers:\n", count);
    for (int i = 0; i < count; i++) {
        printf("Enter number %d: ", i + 1);
        scanf("%d", &numbers[i]);
    }

    // 입력된 숫자를 출력합니다.
    printf("\nEntered numbers are:\n");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    return 0;
}

프로그램을 컴파일합니다.

gcc mean_calculation.c -o mean_calculation

프로그램을 실행합니다.

./mean_calculation

예시 출력:

Enter the number of elements (max 100): 5
Enter 5 numbers:
Enter number 1: 10
Enter number 2: 20
Enter number 3: 30
Enter number 4: 40
Enter number 5: 50

Entered numbers are:
10 20 30 40 50

코드의 주요 부분을 살펴보겠습니다.

  • #define MAX_SIZE 100은 배열 크기의 최대 제한을 설정합니다.
  • scanf()는 요소 개수와 개별 숫자를 읽는 데 사용됩니다.
  • 입력을 검증하여 허용 범위 내에 있는지 확인합니다.
  • for 루프를 사용하여 숫자를 입력하고 표시합니다.

이 프로그램은 다음을 보여줍니다.

  1. 최대 크기를 가진 배열을 선언하는 방법
  2. 사용자로부터 요소 개수를 받는 방법
  3. 배열에 숫자를 입력하는 방법
  4. 사용자 입력을 검증하는 방법
  5. 입력된 숫자를 표시하는 방법

합 계산 후 평균 = 합/개수

이 단계에서는 사용자가 입력한 숫자의 합과 평균을 계산하는 이전 프로그램을 확장합니다.

기존 파일을 엽니다.

cd ~/project
nano mean_calculation.c

합과 평균 계산을 포함하도록 코드를 수정합니다.

#include <stdio.h>

#define MAX_SIZE 100

int main() {
    int numbers[MAX_SIZE];
    int count;
    int sum = 0;
    float mean;

    // 사용자에게 요소 개수를 묻습니다.
    printf("Enter the number of elements (max %d): ", MAX_SIZE);
    scanf("%d", &count);

    // 입력 유효성 검사
    if (count <= 0 || count > MAX_SIZE) {
        printf("Invalid number of elements!\n");
        return 1;
    }

    // 배열에 숫자를 읽고 합을 계산합니다.
    printf("Enter %d numbers:\n", count);
    for (int i = 0; i < count; i++) {
        printf("Enter number %d: ", i + 1);
        scanf("%d", &numbers[i]);
        sum += numbers[i];
    }

    // 평균을 계산합니다.
    mean = (float)sum / count;

    // 결과를 출력합니다.
    printf("\nEntered numbers are:\n");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    printf("Sum of numbers: %d\n", sum);
    printf("Mean of numbers: %.2f\n", mean);

    return 0;
}

프로그램을 컴파일합니다.

gcc mean_calculation.c -o mean_calculation

프로그램을 실행합니다.

./mean_calculation

예시 출력:

Enter the number of elements (max 100): 5
Enter 5 numbers:
Enter number 1: 10
Enter number 2: 20
Enter number 3: 30
Enter number 4: 40
Enter number 5: 50

Entered numbers are:
10 20 30 40 50
Sum of numbers: 150
Mean of numbers: 30.00

이 버전의 주요 변경 사항:

  • 모든 숫자의 합을 추적하기 위해 sum 변수를 추가했습니다.
  • 입력 루프에 합 계산을 통합했습니다.
  • 합을 개수로 나누어 평균을 계산했습니다.
  • 부동소수점 나눗셈을 보장하기 위해 (float) 형 변환을 사용했습니다.
  • 서식화된 출력으로 합과 평균에 대한 출력을 추가했습니다.

이제 프로그램은 다음을 보여줍니다.

  1. 배열 요소의 합을 계산하는 방법
  2. 산술 평균을 계산하는 방법
  3. 소수점 자리수를 지정하여 결과를 표시하는 방법

평균 출력

이 마지막 단계에서는 평균을 계산하고 출력하는 함수를 만들어 프로그램을 더욱 모듈화하고 가독성 있게 개선합니다.

기존 파일을 엽니다.

cd ~/project
nano mean_calculation.c

평균 계산을 위한 전용 함수로 코드를 업데이트합니다.

#include <stdio.h>

#define MAX_SIZE 100

// 평균을 계산하고 출력하는 함수
void calculateMean(int numbers[], int count) {
    if (count <= 0) {
        printf("Error: 평균을 계산할 숫자가 없습니다.\n");
        return;
    }

    int sum = 0;
    float mean;

    // 합 계산
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }

    // 평균 계산
    mean = (float)sum / count;

    // 자세한 통계 출력
    printf("\n통계:\n");
    printf("요소 개수: %d\n", count);
    printf("숫자 합: %d\n", sum);
    printf("숫자 평균: %.2f\n", mean);
}

int main() {
    int numbers[MAX_SIZE];
    int count;

    // 사용자에게 요소 개수를 묻습니다.
    printf("Enter the number of elements (max %d): ", MAX_SIZE);
    scanf("%d", &count);

    // 입력 유효성 검사
    if (count <= 0 || count > MAX_SIZE) {
        printf("Invalid number of elements!\n");
        return 1;
    }

    // 배열에 숫자를 읽습니다.
    printf("Enter %d numbers:\n", count);
    for (int i = 0; i < count; i++) {
        printf("Enter number %d: ", i + 1);
        scanf("%d", &numbers[i]);
    }

    // 입력된 숫자를 출력합니다.
    printf("\n입력된 숫자는:\n");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    // 평균을 계산하고 출력합니다.
    calculateMean(numbers, count);

    return 0;
}

프로그램을 컴파일합니다.

gcc mean_calculation.c -o mean_calculation

프로그램을 실행합니다.

./mean_calculation

예시 출력:

Enter the number of elements (max 100): 4
Enter 4 numbers:
Enter number 1: 10
Enter number 2: 20
Enter number 3: 30
Enter number 4: 40

입력된 숫자는:
10 20 30 40
통계:
요소 개수: 4
숫자 합: 100
숫자 평균: 25.00

이 버전의 주요 개선 사항:

  • 별도의 calculateMean() 함수를 만들었습니다.
  • 더 자세한 통계 출력을 추가했습니다.
  • 예외적인 경우에 대한 오류 처리를 개선했습니다.
  • 이전 단계와 동일한 핵심 기능을 유지했습니다.
  • 코드를 더욱 모듈화하고 읽기 쉽게 만들었습니다.

이 프로그램은 다음을 보여줍니다.

  1. 계산에 함수 기반 접근 방식을 사용하는 방법
  2. 포괄적인 통계 출력을 만드는 방법
  3. 모듈화된 코드 설계를 사용하는 방법

요약

이 실습에서는 C 프로그래밍에서 숫자 배열을 읽고, 데이터 집합의 합계와 평균을 계산한 다음 평균을 출력하는 방법을 배웁니다. 먼저 사용자에게 숫자 집합을 입력하도록 요청하고 배열에 저장합니다. 그런 다음 숫자의 합을 계산하고 개수로 나누어 평균을 찾습니다. 마지막으로 계산된 평균을 출력합니다.

이 실습에서 다루는 주요 단계는 최대 크기로 배열을 선언하고, 사용자로부터 요소 개수를 가져오고, 배열에 숫자를 입력하고, 사용자 입력을 검증하고, 입력된 숫자를 표시하는 것입니다. 실습을 마치면 C 프로그래밍에서 데이터 집합의 평균을 계산하는 방법에 대한 명확한 이해를 얻게 될 것입니다.