分散を出力する
このステップでは、異なる精度レベルで分散の計算結果を書式設定して出力する方法を学び、コードをよりモジュール化するための関数を作成します。
前の variance.c
ファイルを変更して、分散の出力を改善します。
cd ~/project
nano variance_print.c
分散の出力を強化するために、以下のCコードを記述します。
#include <stdio.h>
#include <math.h>
// Function to calculate variance
float calculate_variance(int numbers[], int count) {
int sum = 0;
float mean, variance = 0.0;
// Calculate sum and mean
for (int i = 0; i < count; i++) {
sum += numbers[i];
}
mean = (float)sum / count;
// Calculate sum of squared deviations
for (int i = 0; i < count; i++) {
variance += pow(numbers[i] - mean, 2);
}
// Divide by count to get variance
variance /= count;
return variance;
}
// Function to print variance with different formats
void print_variance(float variance) {
printf("Variance Representations:\n");
printf("1. Standard Format: %.2f\n", variance);
printf("2. Scientific Notation: %e\n", variance);
printf("3. Precise Format: %.4f\n", variance);
}
int main() {
int numbers[] = {10, 20, 30, 40, 50};
int count = sizeof(numbers) / sizeof(numbers[0]);
// Calculate and print variance
float variance = calculate_variance(numbers, count);
printf("Original Numbers: ");
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
出力例:
Original Numbers: 10 20 30 40 50
Variance Representations:
1. Standard Format: 200.00
2. Scientific Notation: 2.000000e+02
3. Precise Format: 200.0000
主な改善点:
- 分散の計算用に別々の関数を作成しました。
- 複数の分散の出力形式を追加しました。
- 分散を表すさまざまな方法を示しました。