用c语言编写一个对数组内所有元素取平均的函数
时间: 2024-10-19 16:03:16 浏览: 23
在C语言中,你可以创建一个函数来计算数组内所有元素的平均值。这里是一个简单的例子:
```c
#include <stdio.h>
double average(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return (double) sum / size; // 将整数结果转换为浮点数以得到准确的小数平均值
}
// 主程序示例
int main() {
int my_array[] = {5, 10, 15, 20, 25};
int array_size = sizeof(my_array) / sizeof(my_array[0]);
double avg = average(my_array, array_size);
printf("Array elements average is %.2f\n", avg);
return 0;
}
```
在这个`average`函数里,我们首先初始化一个`sum`变量为零,然后遍历数组,将每个元素加到总和上。最后,通过除以数组大小,计算出平均值并返回。
相关问题
用c语言编写一个程序 对数组a中的元素进行降序排列,存放到b数组中,要求不能改变a数组中的值
好的,以下是用C语言编写的程序,实现对数组a中的元素进行降序排列,存放到b数组中,同时不改变a数组中的值:
```c
#include <stdio.h>
#define SIZE 10 // 定义数组大小为10
void sort(int a[], int b[]);
int main() {
int a[SIZE] = {3, 1, 7, 5, 9, 2, 8, 4, 6, 0}; // 原始数组a
int b[SIZE]; // 存放降序排列后的数组b
int i;
sort(a, b); // 调用排序函数
printf("原始数组a:\n");
for (i = 0; i < SIZE; i++) {
printf("%d ", a[i]);
}
printf("\n降序排列后的数组b:\n");
for (i = 0; i < SIZE; i++) {
printf("%d ", b[i]);
}
return 0;
}
void sort(int a[], int b[]) {
int i, j, temp;
// 将原始数组a复制到数组b中
for (i = 0; i < SIZE; i++) {
b[i] = a[i];
}
// 冒泡排序,实现降序排列
for (i = 0; i < SIZE - 1; i++) {
for (j = 0; j < SIZE - i - 1; j++) {
if (b[j] < b[j + 1]) {
temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
}
```
运行以上代码,会输出原始数组a和降序排列后的数组b,如下所示:
```
原始数组a:
3 1 7 5 9 2 8 4 6 0
降序排列后的数组b:
9 8 7 6 5 4 3 2 1 0
```
注意,这里使用了冒泡排序算法实现降序排列。同时,为了不改变数组a中的值,我们在排序函数中先将数组a复制到数组b中,再对数组b进行排序。
用C语言编写一个函数,函数要求传入一个数组的首地址、数组长度,在函数内部对数组进行从小到大的顺序排序,排序算法要求使用冒泡排序。函数编写完成后,自行编写程序测试函数的功能。
在C语言中,我们可以使用冒泡排序算法来对整型数组进行排序。下面是一个简单的实现示例:
```c
#include <stdio.h>
// 定义冒泡排序函数
void bubbleSort(int* arr, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) { // 如果前一个元素大于后一个
// 交换两个元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 测试函数
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
bubbleSort(arr, n);
printf("\nSorted array using Bubble Sort:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,`bubbleSort`函数接收一个整数数组和它的长度作为输入,并通过嵌套循环进行冒泡排序。`main`函数则用于创建一个数组并调用`bubbleSort`函数对其进行排序,最后打印出排序后的结果。
阅读全文