berechnen Sie die Summe der diagonalen in der matrix

Brauche ich zur Berechnung die Summe der beiden diagonalen in einer matrix in C++, ich habe bereits eine Lösung für, aber ich muss stumm sein, denn ich kann nicht verstehen, was es tut, so würde ich gerne wissen, ob es eine andere version, die ich verstehen kann. hier ist der code der die Arbeit macht:

cout<<"Jepi rangun e  matrices"<<endl;  //pra bejme manipulim me matrice katrore ku rreshtat=kolonat
cin>>n;
cout<<"Tani jepi elementet e matrices"<<endl; //lexohet matrica

for(i=1;i<=n;i++)
{
     for(j=1;j<=n;j++)
        cin>>a[i][j];
}

d=0;
s=0; //ketu e keni kushtin si dhe mbledhjen per te dy diagonalet me dy variabla te ndryshme

for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    {
        if(i==j)
            d=d+a[i][j];
        if(j==n-i+1 || i==n-j+1) 
            s=s+a[i][j];
    }

Den Teil, der schwer zu verstehen ist,

if(j==n-i+1 || i==n-j+1) 
    s=s+a[i][j];

Hier ist der gesamte code, den ich geändert aber es funktioniert nicht für die sekundäre Diagonale:

#include <iostream>
using namespace std;

int main()
{
    int d=0,s=0; //ketu e keni kushtin si dhe mbledhjen per te dy diagonalet me dy variabla te ndryshme
    int i,j,n;
    int a[5][5];

    cout<<"Jepi rangun e  matrices"<<endl;  //pra bejme manipulim me matrice katrore ku rreshtat=kolonat
    cin>>n;
    cout<<"Tani jepi elementet e matrices"<<endl; //lexohet matrica

    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
            cin>>a[i][j];
    }

    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            if(i==j) 
                d+=a[i][j]; //principal diagonal 
            if(i+j==n-1)
                s+=a[i][j];//secondary diagonal

        }
    }

    cout << d << endl;
    cout << s << endl;
    cin.get();
    cin.get();
    return 0;
}
  • Haben Sie eine spezifische Frage über irgendeinen Teil dieser code?
  • ja das ist das problem: falls(j==n-i+1 || i==n-j+1) s=s+a[i][j];
Schreibe einen Kommentar