21xrx.com
2024-12-22 14:57:47 Sunday
登录
文章检索 我的文章 写文章
C++上机考试大题
2023-07-05 08:15:25 深夜i     --     --
C++考试 上机考试 大题 编程实践 算法实现

本文将介绍一道C++上机考试大题。题目要求实现对于一个10维的浮点数向量集合,求出其中的最小值、最大值、平均值、方差、标准差等统计指标。

首先,我们需要定义一个向量的结构体,包含10个浮点数作为向量的十个维度。代码如下:


struct Vector {

  double data[10];

};

然后,我们需要读入输入的数据,代码如下:


const int N = 1000000; // 向量数的最大值

int n; // 当前向量数

Vector v[N];

while(cin >> v[n].data[0]) {

  for(int i = 1; i < 10; i++) {

    cin >> v[n].data[i];

  }

  n++;

}

接着,我们可以计算最小值、最大值、平均值等统计指标。代码如下:


double minv = v[0].data[0], maxv = v[0].data[0], sum = 0;

for(int i = 0; i < n; i++) {

  for(int j = 0; j < 10; j++) {

    minv = min(minv, v[i].data[j]);

    maxv = max(maxv, v[i].data[j]);

    sum += v[i].data[j];

  }

}

double avg = sum / (n * 10.0);

接下来,我们需要计算方差和标准差,代码如下:


double s = 0;

for(int i = 0; i < n; i++) {

  for(int j = 0; j < 10; j++) {

    s += (v[i].data[j] - avg) * (v[i].data[j] - avg);

  }

}

double var = s / (n * 10.0);

double stdv = sqrt(var);

最后,我们输出结果,代码如下:


cout << fixed << setprecision(2);

cout << "Min: " << minv << endl;

cout << "Max: " << maxv << endl;

cout << "Avg: " << avg << endl;

cout << "Var: " << var << endl;

cout << "Std: " << stdv << endl;

综上所述,通过实现上述代码,我们可以完成这道C++上机考试大题,求出10维浮点数向量集合的最小值、最大值、平均值、方差、标准差等统计指标。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复