6. Mathematical Operations on Arrays

6.1 Statistical Operations 
 6.1.1 Sum and Average 
 #include <stdio.h>

int sum_array(int arr[], int size) {
 int sum = 0;
 for (int i = 0; i < size; i++) {
 sum += arr[i];
 }
 return sum;
}

double average_array(int arr[], int size) {
 if (size == 0) return 0.0;
 return (double)sum_array(arr, size) / size;
}

// Usage
int main() {
 int scores[] = {85, 92, 78, 96, 88};
 int size = 5;
 
 int total = sum_array(scores, size);
 double avg = average_array(scores, size);
 
 printf("Total: %d\n", total);
 printf("Average: %.2f\n", avg);
 
 return 0;
}
 
 6.1.2 Standard Deviation 
 #include <math.h>

double standard_deviation(int arr[], int size) {
 if (size <= 1) return 0.0;
 
 double mean = average_array(arr, size);
 double sum_squared_diff = 0.0;
 
 for (int i = 0; i < size; i++) {
 double diff = arr[i] - mean;
 sum_squared_diff += diff * diff;
 }
 
 return sqrt(sum_squared_diff / (size - 1));
}
 
 6.2 Array Comparison 
 6.2.1 Check if Arrays are Equal 
 #include <stdbool.h>

bool arrays_equal(int arr1[], int arr2[], int size) {
 for (int i = 0; i < size; i++) {
 if (arr1[i] != arr2[i]) {
 return false;
 }
 }
 return true;
}
 
 6.2.2 Element-wise Operations 
 void add_arrays(int arr1[], int arr2[], int result[], int size) {
 for (int i = 0; i < size; i++) {
 result[i] = arr1[i] + arr2[i];
 }
}

void multiply_array_scalar(int arr[], int size, int scalar) {
 for (int i = 0; i < size; i++) {
 arr[i] *= scalar;
 }
}