C++ 如何在2d数组中查找用户输入单元格周围的单元格总数?

C++ 如何在2d数组中查找用户输入单元格周围的单元格总数?,c++,C++,这就是我到目前为止忽略srand(0)的结果,为了便于计算,除了外部限制外,其他值都很接近。输出的格式都是正确的,但如果所选单元格位于第9列或第9行,则周围单元格的总和通常以百万为单位 #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { int matrix[9][9]; int row_n, col_n, sum,

这就是我到目前为止忽略srand(0)的结果,为了便于计算,除了外部限制外,其他值都很接近。输出的格式都是正确的,但如果所选单元格位于第9列或第9行,则周围单元格的总和通常以百万为单位

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{

    int matrix[9][9];
    int row_n, col_n, sum, surround_sum, i, j;
    cout << "\t    columns" << endl;
    cout << "       1 2 3 4 5 6 7 8 9 " << endl;
    for (int i = 0; i < 9; i++)
    {
        cout << "row " << i + 1 << "  ";
        for (int j = 0; j < 9; ++j)
        {
            matrix[i][j] = rand() % 10;
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }
    cout << "what array cell would you like to see? (press enter after each entry)" << endl;
    cout << "row = ";
    cin >> row_n;
    cout << "column = ";
    cin >> col_n;

    cout << "the number " << matrix[row_n - 1][col_n - 1] << " is in cell " << row_n << "," << col_n << endl;

        for (int i=(row_n-2);i<(row_n+1);i++){

            for(int j=(col_n-2);j<(col_n+1);j++){
                if (i>9||i<0)
                    i=0;
                if (j>9||j<0)
                    j=0;
                sum+=matrix[i][j];
                surround_sum= sum-matrix[row_n-1][col_n-1]+2;
            }}
    cout << "the sum of the cells surrounding cell " << row_n << "," << col_n << " is " << surround_sum;

    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
整数矩阵[9][9];
int row_n,col_n,sum,round_sum,i,j;

由于srand(0)被省略,为了便于计算,我推荐您一个优秀的计划。进入
int矩阵[9][9]
的有效索引为0到8。您对
的检查如果(i>9 | | i
如果在00:47编辑中移动
s,则更改
循环的
中使用的索引。这通常会导致糟糕的结果。请非常小心,不要意外地重新访问以前访问过的坐标。您已接近自行调试此操作。您已经知道有问题的情况(例如第9行)。使用调试器——或手动浏览代码——看看发生了什么。哪些值正在添加到您的
round_sum
?@user12300491,因此学习对您有好处。为便于计算,省略了srand(0)。我推荐您一个出色的计划。有效索引到
int矩阵[9][9]
为0到8。如果(i>9 | | i
如果在00:47编辑中移动
s,则更改
循环的
中使用的索引。这通常会导致糟糕的结果。请非常小心,不要意外地重新访问以前访问过的坐标。您已接近自行调试此操作。您已经知道有问题的情况(例如第9行)。使用调试器(或手动浏览代码)并查看正在发生的情况。哪些值正在添加到您的
round\u sum
?@user12300491中,因此学习对您有好处。