Array Statistics Package

Array Statistics Package

Medium C Functions 31 views
Explanation Complexity

Problem Statement

By passing an array to the function. Calculate Function: sum, average, min, max, range. Return values ​​simultaneously using pointers (multiple output parameters).

Input Format

An array of numbers and its size.

Output Format

Calculated values returned using pointers:

• Sum

• Average

• Minimum

• Maximum

• Range

Example

Array: [2, 4, 6, 8, 10]
Sum = 30
Average = 6
Min = 2
Max = 10
Range = 8

Constraints

• Array size ≥ 1

• Output values returned using pointers (multiple outputs)

Concept Explanation

The function receives an array and calculates multiple results at once.
Pointers are used so the function can return more than one value.

Step-by-Step Explanation

1.Create a function that accepts:

• Array

• Size of array

• Pointers for sum, average, min, max, range

2.Initialize:

• Sum = 0

• Min = first element

• Max = first element

3.Traverse the array from index 0 to size − 1.

4.For each element:

• Add value to sum.

• If value < min → update min.

• If value > max → update max.

5.After traversal:

• Calculate average = sum / size.

• Calculate range = max − min.

6.Store all calculated values using the respective pointers.

7.Return control to the calling function with all results updated.

Concept Explanation

The function receives an array and calculates multiple results at once.
Pointers are used so the function can return more than one value.

Step-by-Step Explanation

1.Create a function that accepts:

• Array

• Size of array

• Pointers for sum, average, min, max, range

2.Initialize:

• Sum = 0

• Min = first element

• Max = first element

3.Traverse the array from index 0 to size − 1.

4.For each element:

• Add value to sum.

• If value < min → update min.

• If value > max → update max.

5.After traversal:

• Calculate average = sum / size.

• Calculate range = max − min.

6.Store all calculated values using the respective pointers.

7.Return control to the calling function with all results updated.

Input / Output Format

Input Format
An array of numbers and its size.
Output Format
Calculated values returned using pointers:

• Sum

• Average

• Minimum

• Maximum

• Range
Constraints
• Array size ≥ 1

• Output values returned using pointers (multiple outputs)

Examples

Input:
Array: [2, 4, 6, 8, 10]
Output:
Sum = 30 Average = 6 Min = 2 Max = 10 Range = 8

Example Solution (Public)

C
#include <stdio.h>

/* Function to calculate sum, average, min, max, range */
void calculateStats(int arr[], int n, int *sum, float *avg, int *min, int *max, int *range) {
    int i;
    *sum = 0;
    *min = arr[0];
    *max = arr[0];

    for (i = 0; i < n; i++) {
        *sum += arr[i];
        if (arr[i] < *min) *min = arr[i];
        if (arr[i] > *max) *max = arr[i];
    }

    *avg = (float)(*sum) / n;
    *range = *max - *min;
}

int main() {
    int n, i;

    printf("Enter number of elements: ");
    scanf("%d", &n);

    int arr[n];

    printf("Enter %d elements: ", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    int sum, min, max, range;
    float avg;

    calculateStats(arr, n, &sum, &avg, &min, &max, &range);

    printf("nResults:n");
    printf("Sum     = %dn", sum);
    printf("Average = %.2fn", avg);
    printf("Minimum = %dn", min);
    printf("Maximum = %dn", max);
    printf("Range   = %dn", range);

    return 0;
}

Official Solution Code

#include <stdio.h>

/* Function to calculate sum, average, min, max, range */
void calculateStats(int arr[], int n, int *sum, float *avg, int *min, int *max, int *range) {
    int i;
    *sum = 0;
    *min = arr[0];
    *max = arr[0];

    for (i = 0; i < n; i++) {
        *sum += arr[i];
        if (arr[i] < *min) *min = arr[i];
        if (arr[i] > *max) *max = arr[i];
    }

    *avg = (float)(*sum) / n;
    *range = *max - *min;
}

int main() {
    int n, i;

    printf("Enter number of elements: ");
    scanf("%d", &n);

    int arr[n];

    printf("Enter %d elements: ", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    int sum, min, max, range;
    float avg;

    calculateStats(arr, n, &sum, &avg, &min, &max, &range);

    printf("nResults:n");
    printf("Sum     = %dn", sum);
    printf("Average = %.2fn", avg);
    printf("Minimum = %dn", min);
    printf("Maximum = %dn", max);
    printf("Range   = %dn", range);

    return 0;
}
Please login to submit solutions.
Editor
Output

                                        
Please login to submit solutions.