Crash_Black Opublikowano 3 Stycznia 2006 Zgłoś Opublikowano 3 Stycznia 2006 Mam do napisania funkcje która robi następujące rzeczy: Znajduje w macierzy kwadratowej największy element (MAX) zapamiętuje jego pozycje np. 2 wiersz 5 kolumna, a następnie robie tak aby ten element pozostał na swoim miejscu a liczby znajdujące sie w kolumnie tego elementu zamianialy sie pozycjami z liczbami leżącymi w wierszu tego elementu, resztę liczb w macierzy ma pozostać nie ruszana czyli jak np. mamy macierz: 1 3 5 2 5 6 0 1 4 to ma ona wyglądać po przekształceniu tak: 1 3 2 5 4 6 0 1 5 czyli liczby z kolumny 3 zamieniły się miejscami z liczbami z wiersza 2. to w jaki sposob one sie zamiania czyli na jakich beda miejscach jest nieważne ważne żeby sie zamianily. void MAKSYMALNY(float tab[8][8],int x){ cout<<"\n\n"; cout<<"\n\n"; float MAX=tab[0][0]; int w,k; for(int i=0;i<x;i++) { for(int j=0;j<x;j++) { if(tab[i][j]>MAX) { MAX=tab[i][j]; w=i; k=j; } } } cout<<"Maksymalny element wynosi "<<MAX<<" i znajduje sie w wierszu "<<w+1<<" oraz kolumnie "<<k+1; cout<<"\n\n";//// w tym miejscu sie zaciełem i nie wiem co zrobić by to własnie zamianiło.//} Walczę z tym od 2 tygodni i jakoś mi nie wychodzi. Prosze o pomoc. Dziekuje i pozdrawiam. Jesli jest cos nie jasne to przepraszam staralem sie to wytlumaczyc jak tlyko potrafie bo mi babka to wytłumaczyła znacznie gorzej. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Ragnor Opublikowano 3 Stycznia 2006 Zgłoś Opublikowano 3 Stycznia 2006 takie coś zamieni cały wiersz z kolumną: float tmp;for (i=0; i<x; i++) { tmp = tab[w][i]; tab[w][i]=tab[i][k]; tab[i][k] = tmp;} lecz chcesz aby jedn element pozostał na swym miejscu (ten znajdujacy się na przecięciu), więc powinno być tak: for(i=0,j=0; i<x || j<x; i++, j++) { if (i == k) i++; if (j==w) j++;if(j >= x || i >= x) break; tmp = tab[w][i]; tab[w][i] = tab[j][k]; tab[j][k] = tmp;}i po bólu powinno działac, choć nie sprawdzałem tego w praktyce ale wydaje mi się że zadziała. Kod jest napisany z palca więc nie jest zbyt ładny i przejrzysty. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...