如何编辑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];
}
}