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

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

1、使用for循环最常见和直接的方法,通过一个for循环来遍历数组并计算总和,然后求平均值。

#include

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

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

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

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

#include

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

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

}

相关文章

将 Apple Watch 连接至蓝牙耳机或扬声器
365结束投注什么意思

将 Apple Watch 连接至蓝牙耳机或扬声器

⌚ 06-29 👁️‍🗨️ 5610
幻化坐骑在哪买
365bet育在线网址

幻化坐骑在哪买

⌚ 02-01 👁️‍🗨️ 2288
召唤神父方法,召唤后作为boss实力会变弱
365bet育在线网址

召唤神父方法,召唤后作为boss实力会变弱

⌚ 09-29 👁️‍🗨️ 5965