C语言中,并没有专门的求平均数函数。一般都是根据需要自行编写。
一、算法设计:
平均数需要先计算一组数的总和,然后除以总个数。
所以需要按照如下步骤进行:
1、确认元素个数及各个元素值;
2、遍历,累加各个元素;
3、除以个数,得到平均数;
4、输出结果。
二、参考代码:
以整型为例:
#include <stdio.h>float ave(int *a, int n)
{
float s=0
int i
for(i=0i<ni++)//遍历。
s+=a[i]//累加。
s/=n//计算平均数。
return s//返回结果。
}
int main()
{
int a[5] = {2,6,8,9,3}//待计算数组。
printf("%f\n", ave(a,5))//调用函数,计算平均数并输出。
return 0
}
注意:由于平均数涉及除法,所以一般平均数值并不是整数,所以需要用浮点数来存储平均数。
求n个数平均数源程序如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
int a[100] = { NULL }//初始化数组元素
int i = 0, n//定义循环变量和正整数变量n
float sum = 0.0//定义和变量为float型,注意计算的数据类型
float average = 0.0//定义平均数变量为float型,注意计算的数据类型
printf("Please input n (n<100) :")
scanf("%d", &n)//输入正整数n
printf("Please input %d integers:", n)//提示输入几个正整数
for (i = 0i <ni++)//循环输入元素
{
scanf("%d", &a[i])//输入整形变量
sum += a[i]//循环输入的时候同时进行求和
}
//for (i = n - 1i >= 0i--)
printf("the a[n] number: ")//倒叙输出数组元素
for (i = 0i <ni++)//循环输入元素
printf("%d ", a[i])//倒叙输出数组元素
printf("\n")
average = sum / (float)n//注意不同类型之间的计算,这里加了类型强制转换
printf("averge=%.2f\n", average)//输出平均数
return 0
}
程序运行结果如下:
扩展资料:
其他实现方式:
#include <iostream>
int main()
{
int i
double sum = 0
int count = 0
scanf("%d", &i)
while (i != -1)
{
sum = sum + i
count++
scanf("%d", &i)
}
printf("%.2f", sum / count)
return 0
}
#include<stdio.h>
int main(void)
{
double x=0,z=0
int y=0
int y1=0
printf("请输入 10 个数,空格分开:")
for(y=0y<10y++)
{
scanf("%lf",&x)
if(z>=0)
{
z = z + x
y1++
}
getchar()
}
printf("平均数是: %.2lf \n",z/y1)
return 0
}