Nested loops and matrices in C++

2

I have been trying to write a c++ program for doing the addition of 2 matrices and this is the code i have written. But i keep having the error saying "Process returned -1073741819 (0xC0000005)" Can you please help me find my error?

    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;
    }
c++
nested-loops
asked on Stack Overflow Mar 23, 2020 by Eyup Yilmaz

1 Answer

4

In your sum logic, the nested iterator variable j is not being incremented, it's i. Which looks like:

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];
            }
        }

So, it looks like:

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

And the whole code becomes:

    #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;
    }

Final Output:

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: Do not start indexing with 1, start with 0

answered on Stack Overflow Mar 23, 2020 by Arun Suryan • edited Mar 23, 2020 by Arun Suryan

User contributions licensed under CC BY-SA 3.0