Kwadrat półmagiczny
Ostatnio zmodyfikowano 2017-11-19 21:12
Wiesław Temat założony przez niniejszego użytkownika |
Kwadrat półmagiczny » 2017-11-19 20:28:59 Witam, zrobiłem program sprawdzający, czy dana tablica jest kwadratem półmagicznym (przekątne nie muszą równać się sumie magicznej). Wszystko działa, oprócz sytuacji, gdy wpiszę liczbę większą niż jednocyfrowa. Nie rozumiem, dlaczego wyświetla się wtedy 0 (gdyby była zła suma wyświetlało by się -1). Proszę o pomoc. Oto kod: #include<iostream> using namespace std; int main() { int n; cin >> n; int tab[ n ][ n ]; int tabl[ n ][ n ]; for( int h = 0; h < n; h++ ) { for( int u = 0; u < n; u++ ) tabl[ h ][ u ] = 0; } for( int x = 0; x < n; x++ ) { for( int y = 0; y < n; y++ ) { cin >> tab[ x ][ y ]; for( int e = 0; e < n; e++ ) { for( int f = 0; f < n; f++ ) { if( tabl[ e ][ f ] == tab[ x ][ y ] ) { cout << "-1"; return 0; } } } tabl[ x ][ y ] = tab[ x ][ y ]; if( tab[ x ][ y ] = 0 ) { cout << "-1"; return 0; } } } int w = 0; for( int t = 0; t < n; t++ ) { w = 0; for( int v = 0; v < n; v++ ) w += tab[ t ][ v ]; } int suma = 0; for( int a = 0; a < n; a++ ) { suma = 0; for( int b = 0; b < n; b++ ) suma += tab[ a ][ b ]; if( suma != w ) { cout << "-1"; return 0; } } for( int q = 0; q < n; q++ ) { suma = 0; for( int z = 0; z < n; z++ ) suma += tab[ z ][ q ]; if( suma != w ) { cout << "-1"; return 0; } } cout << suma; return 0; }
Pozdrawiam |
|
Luq |
» 2017-11-19 20:38:13 Niewłaściwy operator. int tab[ n ][ n ]; int tabl[ n ][ n ];
To nie jest poprawne tworzenie tablic w C++. |
|
Wiesław Temat założony przez niniejszego użytkownika |
» 2017-11-19 20:55:11 Rzeczywiście, zapomniałem się z tym opratorem. W jakim sensie jest to jednak zły sposób na robienie tablic? Tak mnie nauczono i tak zawsze mi działały... |
|
nanoant20 |
» 2017-11-19 21:12:40 poczytaj o tablicach dynamicznych int * tab = new int[ n ];
i nie zapomnij o zwalnieniu pamieci, usunięciu tablicy poleceniem delete. Ewentualnie zapisz tą zmienną "n" na sztywno #define n 3 lub int n = 3; i usuń cin >> n; |
|
« 1 » |