cmilak43 Temat założony przez niniejszego użytkownika |
» 2012-04-09 20:32:56 nooo poprawiłem funkcję zmien i niby wszystko na razie dobrze działa.....hmmmm nie wiem czy źle skopiowałem twój program czy wdarł się jakiś błąd ale gdy wierszy jest więcej niż kolumn to np. zamiast liczby 5 jest 43012( u mnie działa dobrze)...zobacz u siebie |
|
Admixior |
» 2012-04-09 20:41:06 hmmmm nie wiem czy źle skopiowałem twój program czy wdarł się jakiś błąd ale gdy wierszy jest więcej niż kolumn to np. zamiast liczby 5 jest 43012( u mnie działa dobrze) ma się rozumieć że działa czy nie działa. Jeśli nie to podaj: -wejście -wyjście - co powinno wyjść |
|
cmilak43 Temat założony przez niniejszego użytkownika |
» 2012-04-09 20:59:16 podpatrzyłem poprawiona przez ciebie funkcję zmien i wg. niej poprawiłem funkcje zmien w moim programie....mój program działa znakomicie (na razie każda kombinacja jest przekształcona prawidłowo). Uruchomiłem twój program z wcześniejszego postu i gdy wpisze np. 3 kolumny i 2 wiersze przekształca dobrze, ale gdy wpisze 2 kolumny i 3 wiersze (wpisze liczby 1,2,3,4,5,6) powinno być coś takiego:
1 3 5 2 4 6
natomiast wyświetla coś takiego:
1 3 4267136 2 4 6
Jeśli u ciebie działa dobrze to może po prostu skopiowałem z jakimś błędem |
|
Admixior |
» 2012-04-09 21:11:06 W funkcji zmień powinno być: for( int y = 0;( y < n ) ||( y < m ); y++ ) { for( int x = y;( x < n ) ||( x < m ); x++ ) c = a[ x ][ y ], a[ x ][ y ] = a[ y ][ x ], a[ y ][ x ] = c; } |
|
cmilak43 Temat założony przez niniejszego użytkownika |
» 2012-04-09 21:30:55 Ja nie użyłem alternatywy....o to mój program w pełni działający (przynajmniej po wstępnych testach) #include <iostream> using namespace std; void czytaj( int a[][ 10 ], int & m, int & n ) { cout << "Podaj ilosc kolumn: "; cin >> n; cout << "Podaj ilosc wierszy: "; cin >> m; cout << "Podaj liczby: "; for( int i = 0; i < m; i++ ) { for( int j = 0; j < n; j++ ) cin >> a[ i ][ j ]; } } void zamien( int a[][ 10 ], int & m, int & n ) { int c; for( int i = 0; i < m; i++ ) { for( int j = 0; j < n; j++ ) c = a[ i ][ j ], a[ i ][ j ] = a[ j ][ i ], a[ i ][ j ] = c; } c = m; m = n; n = c; } void wyswietl( int a[][ 10 ], int m, int n ) { for( int i = 0; i < m; i++ ) { for( int j = 0; j < n; j++ ) cout << a[ j ][ i ] << " "; cout << "\n"; } } int main() { int m, n, a[ 10 ][ 10 ]; czytaj( a, m, n ); zamien( a, m, n ); wyswietl( a, m, n ); } |
|
Admixior |
» 2012-04-09 21:36:30 nie działa poprawnie. Dla pierwszego testu wychodzi zły wynik. 3 2 1 2 3 4 5 6
1 2 3 4 5 6
powinno wyjść 1 4 2 5 3 6
a jest co innego w środkowej pętli powinno być for(j=i... i wtedy trzeba alternatywy
i wszystko wychodzi dobrze... |
|
cmilak43 Temat założony przez niniejszego użytkownika |
» 2012-04-09 21:47:13 no to działa czy nie działa ? |
|
Admixior |
» 2012-04-09 21:49:52 Ten co wstawiłeś jest zły bo daje zły wynik dla pierwszego przykładu (w pierwszym poście). jeżeli wprowadzisz poprawkę w funkcji zmien() tę co ci mówiłem będzie działał dobrze |
|
1 « 2 » 3 |