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; }