遍历数组统计即可。
运行结果:
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//平均数
int Mean(int a[], int n)
{
int m = 0;
int i;
for (i = 0; i < n; i++)
m += a[i];
return m / n;
}
//求中位数
int Median(int a[], int n)
{
//先排序
int i, j, t;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
//如果是奇数个,输出中间值
if (n % 2 == 1)
return a[n / 2];
else
{
return (a[n / 2] + a[n / 2 - 1]) / 2;
}
}
//众数
int Mode(int a[], int n)
{
int cnt[11] = { 0 };//因为分数是从0-10,所以用11个元素的数组记录每个数字出现的次数
int i, max, index;
for (i = 0; i < n; i++)
cnt[a[i]] += 1;
//找出最大数
max = 1;
index = 0;
for (i = 0; i < 11; i++)
{
if (cnt[i] > max)
{
max = cnt[i];
index = i;
}
}
return index;
}
int main()
{
int a[40], mean = 0, median = 0, mode = 0;
int i,n;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
mean = Mean(a, n); //平均数
median = Median(a, n);//中位数
mode = Mode(a, n);//众数
printf("Mean=%d\nMedian=%d\nMode=%d\n", mean, median, mode);
return 0;
}