设计使用动态数组, 对输入的全班学生的某门课成绩,进行均值和均方差计算。学生人数N由键盘输入。 若将 N个数 A[]的平均值记为 Avg,均方差计算公式为: Std = sqrt N (A 1 −Avg) 2 +(A 2 −Avg) 2 +...+(A N −Avg) 2 。 输入格式: 首先在第一行给出一个正整数 N(≤20 ),随后一行给出 N 个正整数,同行数字以空格分隔。 输出格式: 输出这N个数的均值、均方差,精度输出小数点后3位。
时间: 2023-06-25 07:05:00 浏览: 103
以下是使用动态数组的 C++ 代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n;
cin >> n;
// 动态分配数组空间
double* a = new double[n];
double sum = 0;
for(int i = 0; i < n; i++) {
cin >> a[i];
sum += a[i];
}
double avg = sum / n; // 计算平均值
double s = 0;
for(int i = 0; i < n; i++) {
s += pow(a[i] - avg, 2);
}
double std = sqrt(s / n); // 计算标准差
// 输出结果
printf("average = %.3f\n", avg);
printf("std = %.3f\n", std);
// 释放动态分配的数组空间
delete[] a;
return 0;
}
```
注:以上代码中使用了 `pow` 函数来计算平方,需要包含头文件 `cmath`。
相关问题
设计使用动态数组, 对输入的全班学生的某门课成绩,进行均值和均方差计算。学生人数N由键盘输入。 若将 N个数 A[]的平均值记为 Avg,均方差计算公式为: Std = sqrt N (A 1 −Avg) 2 +(A 2 −Avg) 2 +...+(A N −Avg) 2 。 输入格式: 首先在第一行给出一个正整数 N(≤20 ),随后一行给出 N 个正整数,同行数字以空格分隔。 输出格式: 输出这N个数的均值、均方差,精度输出小数点后3位。
我可以为您提供以下代码:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int N;
cin >> N;
double sum = 0, sum2 = 0;
double* A = new double[N];
for (int i = 0; i < N; i++) {
cin >> A[i];
sum += A[i];
}
double Avg = sum / N;
for (int i = 0; i < N; i++) {
sum2 += pow(A[i] - Avg, 2);
}
double Std = sqrt(sum2 * N);
cout << "均值:" << Avg << endl;
cout << "均方差:" << Std << endl;
delete[] A;
return 0;
}
注意:这个程序使用了动态数组来存储学生的成绩,然后计算均值和均方差。如果您输入的 N 大于 20,程序将无法正常工作。
用c语言输入10个学生5门课的成绩,用函数实现下列功能 计算平均分方差
以下是用C语言输入10个学生5门课的成绩,用函数实现计算平均分方差的方法:
```c
#include <stdio.h>
#include <math.h>
#define N 10
#define M 5
// 计算平均分
void average(float score[][M], float avg_stu[], float avg_course[]) {
int i, j;
float sum_stu, sum_course;
for (i = 0; i < N; i++) {
sum_stu = 0;
for (j = 0; j < M; j++) {
sum_stu += score[i][j];
avg_course[j] += score[i][j];
}
avg_stu[i] = sum_stu / M;
}
for (j = 0; j < M; j++) {
avg_course[j] /= N;
}
}
// 计算方差
float variance(float score[][M], float avg_stu[], float avg_course[]) {
int i, j;
float sum = 0;
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {
sum += pow(score[i][j] - avg_stu[i], 2);
}
}
for (j = 0; j < M; j++) {
sum += pow(avg_course[j] - avg_stu[N], 2) * N;
}
return sum / (N * M);
}
int main() {
float score[N][M], avg_stu[N], avg_course[M];
int i, j, max_i, max_j;
float max_score = 0, var;
// 输入成绩
for (i = 0; i < N; i++) {
printf("请输入第%d个学生的成绩:\n", i + 1);
for (j = 0; j < M; j++) {
scanf("%f", &score[i][j]);
}
}
// 计算平均分
average(score, avg_stu, avg_course);
// 找出最高分数所对应的学生和课程
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {
if (score[i][j] > max_score) {
max_score = score[i][j];
max_i = i;
max_j = j;
}
}
}
printf("最高分数为%.2f,对应的学生为%d,课程为%d\n", max_score, max_i + 1, max_j + 1);
// 计算平均分方差
var = variance(score, avg_stu, avg_course);
printf("平均分方差为%.2f\n", var);
return 0;
}
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)