多功能阵列最后一行相同的结果

Multi-functional array last row same results

本文关键字:一行 结果 阵列 最后 多功能      更新时间:2023-10-16

so ..嗨,大家好。我的代码有问题,该代码由具有相同结果的多维数组组成。

代码:

#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列中介绍了所有标记。.问题是当我打印时,问题是删除每个平均值(例如,在第一个平均值和第二代码中),这是一样的,我不明白为什么。

with this

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;
}

在这里:

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在计算中索引2D数组的列。

将其更改为:

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