분산 출력
이 단계에서는 분산 계산을 서로 다른 정밀도 수준으로 포맷하고 출력하며, 코드를 더욱 모듈화하기 위한 함수를 만드는 방법을 배웁니다.
이전의 variance.c 파일을 수정하여 분산 출력을 개선합니다.
cd ~/project
nano variance_print.c
분산 출력을 향상시키는 다음 C 코드를 작성합니다.
#include <stdio.h>
#include <math.h>
// 분산을 계산하는 함수
float calculate_variance(int numbers[], int count) {
int sum = 0;
float mean, variance = 0.0;
// 합계와 평균을 계산합니다.
for (int i = 0; i < count; i++) {
sum += numbers[i];
}
mean = (float)sum / count;
// 제곱 편차의 합을 계산합니다.
for (int i = 0; i < count; i++) {
variance += pow(numbers[i] - mean, 2);
}
// 개수로 나누어 분산을 구합니다.
variance /= count;
return variance;
}
// 서로 다른 포맷으로 분산을 출력하는 함수
void print_variance(float variance) {
printf("분산 표현 방식:\n");
printf("1. 표준 포맷: %.2f\n", variance);
printf("2. 과학적 표기법: %e\n", variance);
printf("3. 정밀 포맷: %.4f\n", variance);
}
int main() {
int numbers[] = {10, 20, 30, 40, 50};
int count = sizeof(numbers) / sizeof(numbers[0]);
// 분산을 계산하고 출력합니다.
float variance = calculate_variance(numbers, count);
printf("원본 숫자들: ");
for (int i = 0; i < count; i++) {
printf("%d ", numbers[i]);
}
printf("\n\n");
print_variance(variance);
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc variance_print.c -o variance_print -lm
./variance_print
예시 출력:
원본 숫자들: 10 20 30 40 50
분산 표현 방식:
1. 표준 포맷: 200.00
2. 과학적 표기법: 2.000000e+02
3. 정밀 포맷: 200.0000
주요 개선 사항:
- 분산 계산을 위한 별도의 함수를 생성했습니다.
- 여러 가지 분산 출력 포맷을 추가했습니다.
- 분산을 표현하는 다양한 방법을 보여주었습니다.