【问题标题】:Multi-functional array last row same results多功能数组最后一行结果相同
【发布时间】:2017-11-25 21:20:35
【问题描述】:

所以.. 嗨,伙计们。我的代码有问题,它由具有相同结果的多维数组组成..

代码:

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> students;
    double A[6][5];

    students.resize(5);

    for(int i=1;i<=5;i++) {
        students[i-1] = i;
    }

    for(int i=0;i<5;i++) {
        for(int j=0;j<5;j++) {
            cin >> A[i][j];
        }
    }

    int i = 0;
    for(int j=0;j<5;j++) {
        A[5][j] = (A[i][0] + A[i+1][0] + A[i+2][0] + A[i+3][0] + A[i+4][0]) / 5.0;
    }

    cout << A[5][0] << endl;
    cout << A[5][1] << endl;


    return 0;
}

总的来说,我有一个 6 行 5 列的多功能数组。6 行用于计算平均值。所以我将所有标记引入 5 行和 5 列中。问题是当我打印时出每个平均值(在代码中,例如第一个平均值和第二个平均值),这是一样的,我不明白为什么。

【问题讨论】:

  • 问题是 j 在你只添加 a[0][0]+a[1][0]+a[2][0]+a[3][0]+a[4][0] 的循环中的值
  • 不应该是A[5][j] = (A[0][j] + A[1][j] + A[2][j] + A[3][j] + A[4][j]) / 5.0;吗?
  • 哦..我变的太快到0了,我没有分析..非常感谢。
  • 是的,我想要,但我有 11 的声誉 .. 我需要至少 15 才能做到这一点..

标签: c++ arrays multidimensional-array


【解决方案1】:

有了这个

for(int j=0;j<5;j++) 
{
    A[5][j] = (A[i][0] + A[i+1][0] + A[i+2][0] + A[i+3][0] + A[i+4][0]) / 5.0;
}

您在最后一行的每个元素中重复分配 a[0][0]+a[1][0]+a[2][0]+a[3][0]+a[4][0] 的值。 您需要将其更改为

for(int j=0;j<5;j++) 
{
    A[5][j] = (A[i][j] + A[i+1][j] + A[i+2][j] + A[i+3][j] + A[i+4][j]) / 5.0;
}

【讨论】:

    【解决方案2】:

    这里:

    A[5][j] = (A[i][0] + A[i+1][0] + A[i+2][0] + A[i+3][0] + A[i+4][0]) / 5.0;
    

    您没有使用j 在计算中为二维数组的列编制索引。

    改成:

    A[5][j] = (A[i][j] + A[i+1][j] + A[i+2][j] + A[i+3][j] + A[i+4][j]) / 5.0;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 2019-01-12
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      相关资源
      最近更新 更多