Kezdőoldal » Számítástechnika » Programozás » Mátrix mellékátló, mutatóval?

Mátrix mellékátló, mutatóval?

Figyelt kérdés

függvényt kell írni: paraméterként kapott négyzetes mátrixról eldönti, hogy szimmetrikus-e mellékátlóra?


int Szim(int **mtx, int n){

...

papíron: m.átló ahol-> i+j=n+1


ha i+j>n+1 akkor mtx[i][j] = mtx[i-(j-1)][j-(j-1]?


sehogy se sikerül.

aki tud legyen szíves segítsen.

köszi



2014. jún. 13. 22:54
 1/9 anonim ***** válasza:
Rajzolj le egy 5x5-ös mátrixot, jelöld be rajta a koordinátákat és hogy mit hasonlítasz mivel.
2014. jún. 13. 23:08
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

amit kérdésbe írtam hülyeség...


eddig:

2db for (i,j) után

if ( (i+j) > (N - 1)){...

2014. jún. 13. 23:10
 3/9 A kérdező kommentje:

amit szernék:

int szime(int **mtx, int n); prototípusú függvény


ami megmondja, hogy a négyzetes mátrix szimmetrikus-e a mellékátlóra.

2014. jún. 13. 23:12
 4/9 anonim ***** válasza:
Csak rajzold le...
2014. jún. 13. 23:22
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

ilyet:

[link]

2014. jún. 13. 23:35
 6/9 anonim ***** válasza:

Ugye ha figyeled a cella és "tükrözése" mozgását, akkor a követezőt figyelheted meg: ha vízszintesen mozgatod, akkor a másik függőlegesen mozog, az ellentétes irányban. Ebből következik hogy a másik koordinátával kell valamit csinálni (kivonni).


A feltétel: tomb[i][j] == tomb[n-j-1][n-i-1]

2014. jún. 13. 23:50
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
Köszönöm Wampa a gyors segítséget!
2014. jún. 14. 00:05
 8/9 A kérdező kommentje:

(hátha valakinek még jól jön ) C ben :


int Szim(int **mtx, int N){

int i, j;


for (i = 0; i < N; ++i){

for (j = 0; j < N; ++j){


if ( (i+j) > (N - 1)){

printf("\n %d,%d =%d, %d", i, j, (*(mtx + i))[j], (*(mtx + (N - j - 1)))[N - i - 1] );


if(! (*(mtx + i))[j] == (*(mtx + (N - j - 1)))[N - i - 1]) return 0;

}

}

}


return 1;

}

2014. jún. 14. 00:26
 9/9 A kérdező kommentje:

1 zárójelpár kimaradt, és így csak a baloldalt negálta.

mos már végleges, tesztelt változat:


int Szim(int **mtx, int N){

int i, j;

for (i = 0; i < N; ++i){

for (j = 0; j < N; ++j){

if ( (i+j) > (N - 1)){

printf("\n %d,%d =%d, %d", i, j, (*(mtx + i))[j], (*(mtx + (N - j - 1)))[N - i - 1]);

if( ! ( (*(mtx + i))[j] == (*(mtx + (N - j - 1)))[N - i - 1] ) ) return 0;

}}}

return 1;

}

2014. jún. 14. 01:56

További kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!