C语言编程题计算数组的平均值6种方法

计算数组的平均值是一个常见的编程题目。包括使用循环、递归、指针和标准库函数,通过不同的方法,学生可以更好地理解和掌握在C语言中计算数组平均值的多种实现方式。

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

推荐阅读
cjavapy编程之路首页