用c语言写一下程序:按如下函数原型编写程序,用一个整型数组feedback保存调查的40个反馈意见。用函数编程计算反馈意见的平均数(Mean)、中位数(Median)和众数(Mode)。中位数指的是排列在数组中间的数。如果原始数据的个数是偶数,那么中位数等于中间那两个元素的算术平均值。众数是数组中出现次数最多的那个数(不考虑两个或两个以上的反馈意见出现次数相同的情况)。 int Mean(int answer[], int n); int Median(int answer[], int n); int Mode(int answer[], int n); void DataSort(int a[], int n); 输入提示信息:"Input the feedbacks of 40 students:\n" 输入格式:"%d" 输出提示信息和输出格式: "Mean value = %d\n" "Median value = %d\n" "Mode value = %d\n"
时间: 2024-02-09 14:10:59 浏览: 114
以下是你需要的程序:
```c
#include <stdio.h>
int Mean(int answer[], int n);
int Median(int answer[], int n);
int Mode(int answer[], int n);
void DataSort(int a[], int n);
int main()
{
int feedback[40];
int i;
printf("Input the feedbacks of 40 students:\n");
for (i = 0; i < 40; i++)
{
scanf("%d", &feedback[i]);
}
printf("Mean value = %d\n", Mean(feedback, 40));
printf("Median value = %d\n", Median(feedback, 40));
printf("Mode value = %d\n", Mode(feedback, 40));
return 0;
}
int Mean(int answer[], int n)
{
int i;
int sum = 0;
for (i = 0; i < n; i++)
{
sum += answer[i];
}
return sum / n;
}
int Median(int answer[], int n)
{
int i;
int median;
DataSort(answer, n);
if (n % 2 == 0)
{
median = (answer[n/2 - 1] + answer[n/2]) / 2;
}
else
{
median = answer[n/2];
}
return median;
}
int Mode(int answer[], int n)
{
int i, j;
int mode = answer[0];
int maxCount = 1;
int count;
for (i = 0; i < n; i++)
{
count = 0;
for (j = i; j < n; j++)
{
if (answer[j] == answer[i])
{
count++;
}
}
if (count > maxCount)
{
maxCount = count;
mode = answer[i];
}
}
return mode;
}
void DataSort(int a[], int n)
{
int i, j;
int temp;
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j < n; j++)
{
if (a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
```
程序中的 `Mean` 函数计算平均值, `Median` 函数计算中位数, `Mode` 函数计算众数。 `DataSort` 函数对输入的数据进行排序。
注意:在程序中,输入的 40 个反馈意见没有进行错误检查,如果输入的数据不是整数,程序会出错。
阅读全文