Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #define MAX_SIZE 10
- int input(int *array, int *size);
- void output(const int *array, int size);
- int find_max(const int *array, int size);
- int find_min(const int *array, int size);
- double calculate_mean(const int *array, int size);
- double calculate_variance(const int *array, int size);
- void output_statistics(int max_value, int min_value, double mean_value, double variance_value);
- int main() {
- int size;
- int numbers[MAX_SIZE];
- int input_result;
- input_result = input(numbers, &size);
- if (input_result == 0) {
- output(numbers, size);
- output_statistics(
- find_max(numbers, size),
- find_min(numbers, size),
- calculate_mean(numbers, size),
- calculate_variance(numbers, size)
- );
- } else {
- printf("n/a");
- return 1;
- }
- return 0;
- }
- int input(int *array, int *size) {
- if (scanf("%d", size) != 1 || *size <= 0 || *size > MAX_SIZE) {
- return 1;
- }
- char separator;
- for (int i = 0; i < *size; i++) {
- if (scanf("%d", &array[i]) != 1) {
- return 1;
- }
- separator = getchar();
- if (i < *size - 1 && separator != ' ') {
- return 1;
- } else if (i == *size - 1 && separator != '\n') {
- return 1;
- }
- }
- return 0;
- }
- void output(const int *array, int size) {
- for (int i = 0; i < size; i++) {
- printf("%d", array[i]);
- if (i < size - 1) {
- printf(" ");
- }
- }
- }
- int find_max(const int *array, int size) {
- int max_value = array[0];
- for (int i = 1; i < size; i++) {
- if (array[i] > max_value) {
- max_value = array[i];
- }
- }
- return max_value;
- }
- int find_min(const int *array, int size) {
- int min_value = array[0];
- for (int i = 1; i < size; i++) {
- if (array[i] < min_value) {
- min_value = array[i];
- }
- }
- return min_value;
- }
- double calculate_mean(const int *array, int size) {
- double sum = 0.0;
- for (int i = 0; i < size; i++) {
- sum += array[i];
- }
- return sum / size;
- }
- double calculate_variance(const int *array, int size) {
- double mean = calculate_mean(array, size);
- double sum_squared_diff = 0.0;
- for (int i = 0; i < size; i++) {
- sum_squared_diff += pow(array[i] - mean, 2);
- }
- return sum_squared_diff / size;
- }
- void output_statistics(int max_value, int min_value, double mean_value, double variance_value) {
- printf("\n%d %d %.6f %.6f", max_value, min_value, mean_value, variance_value);
- }
Advertisement
Add Comment
Please, Sign In to add comment