用c语言写求平均值的算法
时间: 2024-05-11 21:13:42 浏览: 147
以下是用C语言实现求平均值的算法:
```c
#include <stdio.h>
int main() {
int n, i;
float sum = 0, average;
printf("请输入数字个数:");
scanf("%d", &n);
float numbers[n]; // 定义数组,存储输入的数字
for (i = 0; i < n; i++) {
printf("请输入第%d个数字:", i + 1);
scanf("%f", &numbers[i]);
sum += numbers[i]; // 每次输入一个数字,累加总和
}
average = sum / n; // 计算平均值
printf("这%d个数字的平均值为:%.2f", n, average); // 输出结果,保留两位小数
return 0;
}
```
以上算法首先要求用户输入数字的个数,然后使用for循环输入每个数字,并将数字累加到总和中。最后计算平均值,并输出结果。注意,由于平均值可能是小数,因此需要使用浮点数类型(float)来存储总和和平均值。
相关问题
用C语言写移动平均算法
好的,移动平均算法可以用C语言实现。您需要先定义一个数组来存储需要计算移动平均值的数据,然后定义一个变量来存储当前计算的数据的下标。接着,您可以使用循环语句来遍历数组中的数据,并根据需要计算移动平均值。具体实现可以参考以下代码:
```
int data[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 定义需要计算移动平均值的数据
int sum = 0; // 定义变量来存储当前计算的数据的和
int index = 0; // 定义变量来存储当前计算的数据的下标
int window_size = 3; // 定义移动窗口的大小
for (int i = 0; i < 10; i++) {
sum += data[i]; // 将当前数据加入到计算总和中
if (i >= window_size - 1) {
float average = (float)sum / window_size; // 计算移动平均值
printf("移动平均值:%.2f\n", average); // 输出移动平均值
sum -= data[index]; // 将最早的数据从计算总和中减去
index++; // 更新当前计算的数据的下标
}
}
```
这段代码实现了一个简单的移动平均算法,您可以根据需要进行修改和优化。
C语言写加权平均算法
加权平均算法是指在计算平均值时,不同数据的权重不同。下面是用C语言实现加权平均算法的示例代码:
```c
#include <stdio.h>
int main() {
int num[5] = {10, 20, 30, 40, 50}; // 数据
int weight[5] = {1, 2, 3, 4, 5}; // 权重
int sum = 0;
int weight_sum = 0;
float weighted_avg;
for (int i = 0; i < 5; i++) {
sum += num[i] * weight[i];
weight_sum += weight[i];
}
weighted_avg = (float)sum / weight_sum;
printf("加权平均值为: %.2f\n", weighted_avg);
return 0;
}
```
在这个例子中,我们有5个数据和5个对应的权重。在循环中,我们将每个数据乘以它的权重,并将结果加起来。然后,我们将所有权重相加,得到一个总权重。最后,我们将加权总和除以总权重,得到加权平均值。
阅读全文