1、使用for循环
最常见和直接的方法,通过一个for
循环来遍历数组并计算总和,然后求平均值。
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
double average = (double)sum / n;
printf("Average: %.2f\n", average);
return 0;
}
2、使用while循环
通过while
循环来实现相同的功能。
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int sum = 0;
int i = 0;
while (i < n) {
sum += arr[i];
i++;
}
double average = (double)sum / n;
printf("Average: %.2f\n", average);
return 0;
}
3、使用递归
通过递归函数来计算数组的总和,然后求平均值。
#include <stdio.h>
int sum_array(int arr[], int n) {
if (n <= 0)
return 0;
return arr[n - 1] + sum_array(arr, n - 1);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int sum = sum_array(arr, n);
double average = (double)sum / n;
printf("Average: %.2f\n", average);
return 0;
}
4、使用指针
使用指针遍历数组并计算总和。
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int sum = 0;
int *ptr;
for (ptr = arr; ptr < arr + n; ptr++) {
sum += *ptr;
}
double average = (double)sum / n;
printf("Average: %.2f\n", average);
return 0;
}
5、使用标准库函数
标准库没有直接计算平均值的函数,但可以使用stdlib.h中的一些辅助函数。
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int sum = 0;
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++) {
sum += arr[i];
}
double average = (double)sum / n;
printf("Average: %.2f\n", average);
return 0;
}
6、使用宏定义和函数
通过宏定义和函数结合来计算数组的平均值。
#include <stdio.h>
#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
double calculate_average(int arr[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return (double)sum / n;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = SIZE(arr);
double average = calculate_average(arr, n);
printf("Average: %.2f\n", average);
return 0;
}