魔方,我无法让这个对行、列和对角线求和
Magic Square, I can't get this to sum the rows, columns, and diagonals
我需要对行、列和主对角线求和并输出。有人可以告诉我我做错了什么吗?这是我被赋予使用的代码,但我似乎无法让它输出我的总和。我在下面的代码中放了一个注释,我相信我的问题存在,它在哪里开始求和,在哪里停止。我将不胜感激任何帮助,因为我自己很难解决这个问题。输出应为 3 x 3 矩阵,第四行和列中的行、列和对角线的总和等于 15。我的输出不是对行、列和对角线求和。
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main()
{
int n = 3;
int row, col, r, c, i, j, k, diag=0;
int magic[19][19];
ofstream fout;
fout.open("p4-out.txt");
for(j=0 ; j<n+1 ; j++){
for(k=0 ; k<n+1 ; k++)
magic[j][k] = 0;}
row=1; col=(n+1)/2;
magic[row-1][col-1]=1;
for(i=2 ; i<=(n*n) ; i++){
row-=1; col-=1;
if(row==0 && col==0){col++; row+=2;}
else if(row==0) row=n;
else if(col==0) col=n;
else if(magic[row-1][col-1]!=0)
{col++; row+=2;}
magic[row-1][col-1]=i;}
for(r=0; r<n; r++){
for(c=0; c<n; c++)
magic[r][n]+=magic[r][c];}
for(c=0; c<n; c++){
for(r=0; r<n; r++)
magic[n][c]+=magic[r][c];}
for(r=0; r<n; r++){
magic[n][n]+=magic[r][r];}
for(r=1; r<(n-1); r++){
c = n - r + 1;
diag+=magic[r][c];}
for(r=0; r<(n+1) ; r++){
fout << endl;
for(c=0; c<(n+1) ; c++)
{fout << setw (5) << magic[r][c];}
fout << endl;}
return 0;
}
// This my output.
15 <---// I need this 15 to go
6 1 8 15 |
|
7 5 3 15 |
|
2 9 4 15 |
|
[15] 15 15 15 15 |
^-------------<------------<----------<-------|
here
使用正确的索引也会填满您的sum
行和列,请尝试:
for(r=0; r<n; r++){ //Where it should start summing
for(c=0; c<n; c++){
magic[r][n]+=magic[r][c];}
}
for(c=0; c<n; c++){
for(r=0; r<n; r++){
magic[n][c]+=magic[r][c];}
}
for(r=0; r<n; r++){
magic[n][n]+=magic[r][r];
}
for(r=0; r<n; r++){
c = n - r + 1;
diag+=magic[r][c];} //where it should stop summing
相关文章:
- 如何在cuSparse中得到稀疏矩阵的对角线
- 如何打印数组对角线的一侧
- 求和 int 乘以双倍时的欠/过近似
- 给定一个类型,如何派生一个泛型更广泛的类型(例如,用于溢出安全求和)?
- 递归求和任务的错误答案
- 向量值(字符串和整数)求和C++
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 我必须计算方阵的对角线元素之和的差值
- 通过 RCPP 中的索引求和
- 矩阵行求和与 RowMajor 和 ColMajor 数据排列的奇怪性能差异
- 形成一个斐波那契三角形,使得每个数字是上面左对角线或右对角线上两个数字的总和
- 给定一个 3 x 3 矩阵或任何 n x n 矩阵,为什么我的以下函数找不到对角线差异?
- 使用192/256位整数求和无符号64位整数向量的点积的最快方法
- C++*对角线差异*问题,我哪里出错了?
- 如何使用循环对所有数字求和?
- 方阵的对角线差
- 如何在 CSR 矩阵的对角线块中计算每行的非零数
- 矩阵中主对角线下的最高偶数.超大数字的解决方案?
- 循环中的线程 Runnin 用于对 c++ 中的数字求和
- 魔方,我无法让这个对行、列和对角线求和