C 언어로 데이터 집합의 범위 찾기

CBeginner
지금 연습하기

소개

이 실습에서는 C 프로그래밍으로 데이터 집합의 범위를 찾는 방법을 배웁니다. 이 실습은 다음 단계를 포함합니다: 1) 배열을 읽고 정렬합니다, 2) 최대값과 최소값의 차이를 구하여 범위를 계산합니다, 그리고 3) 범위를 출력합니다. 이 실습은 C 를 사용하여 데이터 집합의 통계적 특성을 분석하는 과정을 이해하는 데 도움이 되는 단계별 가이드와 예제 코드를 제공합니다.

Read and Sort the Array

In this step, you'll learn how to read an array of numbers and sort it to prepare for calculating the range. We'll use a simple approach to input and organize the dataset.

First, let's create a C program to read and sort an array:

#include <stdio.h>

#define MAX_SIZE 100

// Function to swap two elements
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// Bubble sort function to sort the array
void sortArray(int arr[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(&arr[j], &arr[j + 1]);
            }
        }
    }
}

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

    // Read the number of elements
    printf("Enter the number of elements (max %d): ", MAX_SIZE);
    scanf("%d", &n);

    // Input array elements
    printf("Enter %d integers:\n", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &numbers[i]);
    }

    // Sort the array
    sortArray(numbers, n);

    // Print the sorted array
    printf("Sorted array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    return 0;
}

Let's break down the key components:

  1. We define a maximum array size of 100 elements.
  2. The swap() function helps exchange two array elements.
  3. sortArray() uses bubble sort to arrange elements in ascending order.
  4. In main(), we:
    • Read the number of elements
    • Input the array elements
    • Sort the array
    • Print the sorted array

Example compilation and execution:

gcc -o array_sort array_sort.c
./array_sort

Example output:

Enter the number of elements (max 100): 5
Enter 5 integers:
42 15 7 23 11
Sorted array: 7 11 15 23 42

배열 읽기 및 정렬

이 단계에서는 범위를 계산하기 위해 숫자 배열을 읽고 정렬하는 방법을 배웁니다. 데이터 집합을 입력하고 구성하는 간단한 방법을 사용합니다.

먼저 배열을 읽고 정렬하는 C 프로그램을 만들어 보겠습니다.

#include <stdio.h>

#define MAX_SIZE 100

// 두 요소를 교환하는 함수
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// 배열을 정렬하는 버블 정렬 함수
void sortArray(int arr[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(&arr[j], &arr[j + 1]);
            }
        }
    }
}

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

    // 요소의 개수를 읽습니다.
    printf("요소의 개수를 입력하세요 (최대 %d): ", MAX_SIZE);
    scanf("%d", &n);

    // 배열 요소를 입력합니다.
    printf("%d개의 정수를 입력하세요:\n", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &numbers[i]);
    }

    // 배열을 정렬합니다.
    sortArray(numbers, n);

    // 정렬된 배열을 출력합니다.
    printf("정렬된 배열: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    return 0;
}

핵심 구성 요소:

  1. 최대 배열 크기를 100 개의 요소로 정의합니다.
  2. swap() 함수는 두 배열 요소를 교환하는 데 도움이 됩니다.
  3. sortArray()는 버블 정렬을 사용하여 오름차순으로 요소를 정렬합니다.
  4. main()에서 다음을 수행합니다.
    • 요소의 개수를 읽습니다.
    • 배열 요소를 입력합니다.
    • 배열을 정렬합니다.
    • 정렬된 배열을 출력합니다.

예시 컴파일 및 실행:

gcc -o array_sort array_sort.c
./array_sort

예시 출력:

요소의 개수를 입력하세요 (최대 100): 5
5 개의 정수를 입력하세요:
42 15 7 23 11
정렬된 배열: 7 11 15 23 42

범위 출력

이 마지막 단계에서는 사용자 친화적인 방식으로 범위 계산 결과를 형식화하고 표시하는 방법을 배우고, 출력에 통계적 맥락을 추가합니다.

범위 계산 프로그램의 향상된 버전을 만들어 보겠습니다.

#include <stdio.h>

#define MAX_SIZE 100

// 두 요소를 교환하는 함수
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// 배열을 정렬하는 버블 정렬 함수
void sortArray(int arr[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(&arr[j], &arr[j + 1]);
            }
        }
    }
}

// 범위를 계산하는 함수
int calculateRange(int arr[], int size) {
    // 배열이 비어 있으면 0을 반환합니다.
    if (size == 0) return 0;

    // 범위는 마지막(최대) 요소와 첫 번째(최소) 요소의 차이입니다.
    return arr[size - 1] - arr[0];
}

// 자세한 범위 정보를 출력하는 함수
void printRangeAnalysis(int arr[], int size, int range) {
    printf("\n--- 통계적 범위 분석 ---\n");
    printf("데이터 집합 크기: %d\n", size);
    printf("최소값: %d\n", arr[0]);
    printf("최대값: %d\n", arr[size - 1]);
    printf("범위: %d\n", range);

    // 추가적인 통찰력
    printf("\n해석:\n");
    printf("범위는 데이터 집합 내 값의 분포를 나타냅니다.\n");
    printf("범위가 클수록 데이터의 변동성이 더 큽니다.\n");
}

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

    // 요소의 개수를 읽습니다.
    printf("요소의 개수를 입력하세요 (최대 %d): ", MAX_SIZE);
    scanf("%d", &n);

    // 배열 요소를 입력합니다.
    printf("%d개의 정수를 입력하세요:\n", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &numbers[i]);
    }

    // 배열을 정렬합니다.
    sortArray(numbers, n);

    // 범위를 계산합니다.
    int range = calculateRange(numbers, n);

    // 자세한 범위 분석을 출력합니다.
    printRangeAnalysis(numbers, n, range);

    return 0;
}

이 단계의 주요 개선 사항:

  1. 포괄적인 출력을 제공하는 printRangeAnalysis() 함수를 추가했습니다.
  2. 범위와 데이터 변동성에 대한 추가적인 맥락을 포함했습니다.
  3. 출력 형식을 더욱 정보적이고 읽기 쉽게 만들었습니다.

예시 컴파일 및 실행:

gcc -o range_analysis range_analysis.c
./range_analysis

예시 출력:

요소의 개수를 입력하세요 (최대 100): 6
6개의 정수를 입력하세요:
10 25 7 42 15 33

--- 통계적 범위 분석 ---
데이터 집합 크기: 6
최소값: 7
최대값: 42
범위: 35

해석:
범위는 데이터 집합 내 값의 분포를 나타냅니다.
범위가 클수록 데이터의 변동성이 더 큽니다.

이제 프로그램은 데이터 집합의 범위에 대한 더 포괄적인 정보를 제공하여 사용자가 계산의 통계적 중요성을 이해하는 데 도움이 됩니다.

요약

이 실습에서는 먼저 간단한 버블 정렬 알고리즘을 사용하여 숫자 배열을 읽고 정렬하는 방법을 배웠습니다. 이 단계는 범위를 계산하기 위한 데이터 집합을 준비했습니다. 다음으로, 정렬된 배열에서 최대값에서 최소값을 빼서 데이터 집합의 범위를 찾는 방법을 배울 것입니다. 마지막으로 계산된 범위를 출력합니다. 완료된 단계에서 얻은 주요 학습 내용은 배열 읽기 및 정렬, 그리고 데이터 집합의 범위 개념입니다.