Вывод дисперсии
На этом этапе вы узнаете, как форматировать и выводить результат вычисления дисперсии с разной степенью точности, а также как создать функцию, чтобы сделать код более модульным.
Измените предыдущий файл 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
Основные улучшения:
- Созданы отдельные функции для вычисления дисперсии
- Добавлены несколько форматов вывода дисперсии
- Показаны различные способы представления дисперсии