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;
}
}
No comments to display
No comments to display