Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Program który zamienia miejscami wiersze i kolumny

Ostatnio zmodyfikowano 2012-04-09 22:43
Autor Wiadomość
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
P-54201
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ść
P-54205
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
P-54211
Admixior
» 2012-04-09 21:11:06
W funkcji zmień powinno być:
C/C++
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;
   
}
P-54213
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)

C/C++
#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 );
}
 
P-54220
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...
P-54222
cmilak43
Temat założony przez niniejszego użytkownika
» 2012-04-09 21:47:13
no to działa czy nie działa ?
P-54225
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
P-54227
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona