如何编辑For循环以包含多维数组的行和? 我正在学习数组(新的C++语言,至少要说),我试着做如下: 创建一个12x12随机数数组(带有给定种子) 对每列的元素求和 对每行的元素求和 显示一个13x13矩阵,包括随机数以及行(步骤3)和列(步骤2)之和

如何编辑For循环以包含多维数组的行和? 我正在学习数组(新的C++语言,至少要说),我试着做如下: 创建一个12x12随机数数组(带有给定种子) 对每列的元素求和 对每行的元素求和 显示一个13x13矩阵,包括随机数以及行(步骤3)和列(步骤2)之和,c++,arrays,C++,Arrays,我的代码是: #include "stdafx.h" #include <iostream> #include <cstdlib> #include <iomanip> using namespace std; const int M = 12; const int N = 12; int myArray[M + 1][N] = { 0 }; void generateArray(); void sumRowsAndColumns(); void pr

我的代码是:

#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <iomanip>

using namespace std;

const int M = 12;
const int N = 12;

int myArray[M + 1][N] = { 0 };

void generateArray();
void sumRowsAndColumns();
void printSumRowsAndColumns();

int _tmain(int argc, _TCHAR* argv[])
{
    generateArray();
    sumRowsAndColumns();

    return 0;
}

void generateArray()
{
    // set the seed
    unsigned setSeed = 1023;

    srand(setSeed);

    // generate the matrix using pseudo-random numbers

    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < N; j++)
        {
            myArray[i][j] = rand() % 100;

            // outputs the raw matrix (in case we need to see it)
            //          cout << left << setw(4) << myArray[i][j] << " ";
        }
        //      cout << endl;
    }
    //  cout << endl << endl;
}

void sumRowsAndColumns()
{
    cout << endl;

    // for the columns
    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < M; ++j)
            myArray[M][j] += myArray[i][j];
    }
    printSumRowsAndColumns();
}

void printSumRowsAndColumns()
{

    // for the columns
    for (int i = 0; i < M + 1; i++)
    {
        for (int j = 0; j < N; j++)
        {
            cout << left << setw(6) << myArray[i][j];
        }
        cout << endl;
    }
}
#包括“stdafx.h”
#包括
#包括
#包括
使用名称空间std;
常数int M=12;
常数int N=12;
int myArray[M+1][N]={0};
void-generatarray();
void sumRowsAndColumns();
void printSumRowsAndColumns();
int _tmain(int argc,_TCHAR*argv[]
{
generatarray();
sumRowsAndColumns();
返回0;
}
void生成器array()
{
//播种
无符号设定速度=1023;
srand(固定种子);
//使用伪随机数生成矩阵
for(int i=0;i//cout不确定为什么要创建一个13x12数组。如果要在同一个数组中存储行和列和,则需要一个13x13。我建议您创建一个12x12数组,并创建两个12x1数组来保存和

整数列和[M],行和[M]

并将它们初始化为零

然后,您的循环如下所示:

for (int i = 0; i < M; i++)
{
    for (int j = 0; j < M; ++j)
        {
         row_sum[i] += myArray[i][j];
         col_sum[j] += myArray[i][j];
        }
}
for(int i=0;i
如果它必须全部在一个数组中,你应该能够将其计算为13x13。行和数组是第13列,列和是第13行。我个人认为在这样的数组中混合数据不是一个好主意-12x12用于随机数据,12x1数组用于结果


如果卡住了,只需在一张纸上用较小的数组将其绘制出来,然后用它来了解循环是如何通过数组的。

看起来您的数组是一个
13x12
…这可能是问题的原因吗?您是说无法为每行计算一行中所有元素的总和吗?
//      cout << left << setw(6) << colSum[j] << endl;
for (int i = 0; i < M; i++)
{
    for (int j = 0; j < M; ++j)
        {
         row_sum[i] += myArray[i][j];
         col_sum[j] += myArray[i][j];
        }
}