Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

suma przekątnej

Ostatnio zmodyfikowano 2017-02-07 19:38
Autor Wiadomość
kvrol
Temat założony przez niniejszego użytkownika
suma przekątnej
» 2017-02-07 13:28:52
witam wszystkich
mam problem z obliczeniem sumy przekątnej w macierzy, chodzi o przekątną od prawej do lewej, stworzona pętla pokazuje złe wyniki, a poprawki też nie wskazują na poprawne wykonanie.
C/C++
for( int i = 1; i <= 3; i = i + 1 )
{
    for( int j = 3; j >= 1; j = j - 1 )
    {
        s = s + tab[ i ][ j ];
    }
}
P-157436
mateczek
» 2017-02-07 14:05:45
tablice indeksuje się od zera
C/C++
#include <iostream>
using namespace std;
int main( int argc, char ** argv ) {
    int tablica[ 3 ][ 3 ] = { { 1, 2, 3 },
        { 4, 5, 6 },
        { 7, 8, 9 }
    };
    int suma = 0;
    for( int i = 0; i < 3; i++ ) {
        suma += tablica[ i ][ i ];
    }
    cout << suma << endl;
}
P-157437
kvrol
Temat założony przez niniejszego użytkownika
chodzi o sumę przekątnej
» 2017-02-07 18:20:32
Tylko mi chodzi o obliczenie sumy przekątnej a13+a22+a31, rozpisałem to sobie jak się zmienia i,j ale nadal mi nie wychodzi.
P-157443
mateczek
» 2017-02-07 19:38:06
C/C++
#include <iostream>
using namespace std;
int main( int argc, char ** argv ) {
    int tablica[ 3 ][ 3 ] = { { 1, 2, 2 },
        { 4, 5, 6 },
        { 7, 8, 9 }
    };
    int suma = 0;
    int suma2 = 0;
    for( int i = 0; i < 3; i++ ) {
        suma += tablica[ i ][ i ];
        suma2 += tablica[ i ][ 2 - i ];
    }
    cout << suma << " " << suma2 << endl;
}

2 sposób
C/C++
#include <iostream>
using namespace std;
int main( int argc, char ** argv ) {
    int tablica[ 3 ][ 3 ] = { { 1, 2, 2 },
        { 4, 5, 6 },
        { 7, 8, 9 }
    };
    int suma = 0;
    int wiersz = 2, kolumna = 0; // punkty startowe
    while( wiersz >= 0 )
         suma += tablica[ wiersz-- ][ kolumna++ ]; // skaczę o jeden wiersz w górę i o jedną kolumnę w prawo
   
    cout << suma << endl;
   
}



jeszcze raz przypomnę tablice indeksujemy od zera.
a02+a11+a20

dwie pętle for są zbędne !!! takim kodem jak poniżej sumujesz wszystkie elementy tablicy !!! nie tylko te z przekątnej!!!
C/C++
#include <iostream>
using namespace std;
int main( int argc, char ** argv ) {
    int tablica[ 3 ][ 3 ] = { { 1, 2, 2 },
        { 4, 5, 6 },
        { 7, 8, 9 }
    };
    int suma = 0;
    for( int i = 0; i <= 2; i = i + 1 )
    {
        for( int j = 2; j >= 0; j = j - 1 ) //indeksowanie od tyłu niczego nie zmienia i tak sumujesz wszystkie elementy
        {
            suma += tablica[ i ][ j ];
        }
    }
    cout << suma << endl;
}
P-157449
« 1 »
  Strona 1 z 1