C++ 中的嵌套循环和矩阵

Nested loops and matrices in C++

我一直在尝试编写一个 C++ 程序来执行 2 个矩阵的加法,这是代码 我已经写了。但是我一直有错误说 "Process returned -1073741819 (0xC0000005)" 你能帮我找到我的错误吗?

    int main()
    {
        float a[3][3],b[3][3],c[3][3];
        int l,k;

        cout<<"tell me the nr of lines in the vectors"<<endl;
        cin>>l;
        cout<<"tell me the nr of columns in the vectors"<<endl;
        cin>>k;
        for(int i=1;i<=l;i++){
            for(int j=1;j<=k;j++){
                cout<<"A["<<i<<"]"<<"["<<j<<"]= ";
                cin>>a[i][j];
            }
        }
        for(int i=1;i<=l;i++){
            for(int j=1;j<=k;j++){
                cout<<"B["<<i<<"]"<<"["<<j<<"]= ";
                cin>>b[i][j];
            }
        }
        for(int i=1; i<=l;i++){
            for(int j=1;j<=k;i++){
                c[i][j]=a[i][j]+b[i][j];
            }
        }
        cout<<"the sum of matrices A & B is;"<<endl;

/* i have also added this code here instead of the following loop just to see if there was a problem with the addition procedure or displayin the results;
cout<<c[i][j];   */

        for(int i=1;i<=l;i++){
            for(int j=1;j<=k;j++){
                cout<<c[i][j];
            }
        }

    return 0;
    }

在您的求和逻辑中,嵌套的迭代器变量 j 没有递增,它是 i。 看起来像:

for(int i=1; i<=l;i++){
            for(int j=1;j<=k;i++){ /*Change i to j*/ 
                c[i][j]=a[i][j]+b[i][j];
            }
        }

所以,它看起来像:

for(int i=1; i<=l;i++){
        for(int j=1;j<=k;j++){
            c[i][j]=a[i][j]+b[i][j];
            }
    }

整个代码变为:

    #include <iostream>
    using namespace std;

    int main()
    {
        float a[3][3], b[3][3], c[3][3];
        int l, k;

        cout << "tell me the nr of lines in the vectors" << endl;
        cin >> l;
        cout << "tell me the nr of columns in the vectors" << endl;
        cin >> k;
        for (int i = 0; i < l; i++)
        {
            for (int j = 0; j < k; j++)
            {
                cout << "A[" << i << "]"
                    << "[" << j << "]= ";
                cin >> a[i][j];
            }
        }
        for (int i = 0; i < l; i++)
        {
            for (int j = 0; j < k; j++)
            {
                cout << "B[" << i << "]"
                    << "[" << j << "]= ";
                cin >> b[i][j];
            }
        }
        for (int i = 0; i < l; i++)
        {
            for (int j = 0; j < k; j++)
            {
                c[i][j] = a[i][j] + b[i][j];
            }
        }
        cout << "the sum of matrices A & B is;" << endl;

        /* i have also added this code here instead of the following loop just to see if there was a problem with the addition procedure or displayin the results;
    cout<<c[i][j];   */

        for (int i = 0; i < l; i++)
        {
            for (int j = 0; j < k; j++)
            {
                cout << c[i][j];
            }
        }

        return 0;
    }

最终输出:

tell me the nr of lines in the vectors
2
tell me the nr of columns in the vectors
3
A[1][1]= 1
A[1][2]= 2
A[1][3]= 3
A[2][1]= 4
A[2][2]= 5
A[2][3]= 6
B[1][1]= 1
B[1][2]= 2
B[1][3]= 3
B[2][1]= 4
B[2][2]= 5
B[2][3]= 6
the sum of matrices A & B is;
24681012
Process finished with exit code 0

PS:索引不从1开始,从0开始