Matrix feladat c++?
Figyelt kérdés
Van egy 5x5 matrix. ÉS ki kéne íratni azoknak a soroknak a számát, amelyekben az egymást követő elemek nagyobbak.
Viszont a while ciklus rész nem jó. Valakinek ötlete ?
#include <iostream>
using namespace std;
int main(){
int i=0,j=0;
const int M=5;
const unsigned mtx[M][M]={
{1,4,3,5,2},
{1,3,6,7,8},
{4,3,6,2,3},
{4,5,6,7,8},
{6,2,1,0,0}
};
for(i;i<M;++i){
for(int j=0;j<M;++j)
cout<<mtx[i][j]<<' ';
cout<<endl;}
i=0;
j=0;
while(i<M && j<M){if(mtx[i][j]<mtx[i][j+1]) ++j;
else {j=0;++i;}}
if(j==M) cout<<i<<". sorban az egymast koveto elemek novekednek";
cin.get();
return 0;
}
2012. márc. 20. 16:58
1/4 anonim válasza:
ránézésből első tippre: "while(i<M && j<M)..." helyett "while(i<M && j<(M-1))...", ugyanis j==4 értéknél a [j+1] már a mátrixon kívül keresgél
2/4 A kérdező kommentje:
nem az a hiba. Szerintem a ciklus magban nem jó valami. De nem tudom mi. De köszi.
2012. márc. 20. 17:36
3/4 iostream válasza:
Hát pedig az a probléma. Simán túlindexeled a tömböt ha eljutsz az utolsó sorig. És valószínűleg ez a probléma a logikával is: hiába van egy 4, 5, 6, 7, 8-as sorod, ha az utolsó végrehajtásnál összehasonlítja a 8-t a 6-al, nyílván hibás lesz. Ha nem hiszel nekem, próbáld ki, hogy az utolsó sort 9-el kezded.
4/4 A kérdező kommentje:
Átgondolva valóban túllép az utolsó elemen, de a ciklus mag sem az igazi valami még nem jó benne. Mert, ha az indexelést ki is javítom, akkor sem megy a ciklus mag. vagy legalábbis nem ad eredményt. Valami javaslat még ?
2012. márc. 20. 21:01
Kapcsolódó 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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!