Ciąg liczb jako tablica dwuwymiarowa
Ostatnio zmodyfikowano 2014-04-07 19:07
Midas Temat założony przez niniejszego użytkownika |
Ciąg liczb jako tablica dwuwymiarowa » 2014-04-06 21:37:50 Cześć, piszę program który wczyta do tablicy dwuwymiarowej 2 ciągi liczb. Następnie przekopiowuje do innej tablicy tylko 1 kolumnę. To mam już napisane, problem pojawia się w momencie, w który chce zrobić następującą rzecz: Kolumnę którą mam skopiowaną do tablicy zm_Y, chcę podzielić na tablicę dwuwymiarową po 5 elementów we wierszu, na (rozmiar/5) wierszy i w ostatnim wierszu resztę elementów. Nie wiem jak to zrobić i proszę o pomoc. #include <iostream> #include <stdlib.h> #include <conio.h> using namespace std;
void tablica( int ** S, int rozmiar ) { for( int i = 0; i < rozmiar; i++ ) { S[ i ] = new int[ rozmiar ]; } for( int i = 0; i < rozmiar; i++ ) { for( int j = 0; j < 2; j++ ) { cin >> *( *( S + i ) + j ); } } } void zmY( int ** tab, int rozmiar ) { tablica( tab, rozmiar ); int * zm_Y = new int[ rozmiar ]; for( int c = 0; c < rozmiar; c++ ) { *( zm_Y + c ) = *( *( tab + c ) + 1 ); } for( int q = 0; q < rozmiar; q++ ) { cout << zm_Y[ q ] << endl; } } int main() { int rozmiar; cin >> rozmiar; int ** tab = new int *[ 2 ]; zmY( tab, rozmiar ); _getch(); return 0; } PS Chce do tego wykorzystać tablice. |
|
OSA_PL |
» 2014-04-06 22:07:54 for( int i = 0; i < rozmiar; i++ ) { nowa_tablica[ i / 5 ][ i % 5 ] = zm_Y[ i ]; }
Coś takiego? |
|
Midas Temat założony przez niniejszego użytkownika |
» 2014-04-06 22:12:38 Nie działa. |
|
OSA_PL |
» 2014-04-06 22:14:52 W jakim sensie nie dziala? |
|
Midas Temat założony przez niniejszego użytkownika |
» 2014-04-06 22:21:23 Nie kompiluje się. |
|
Midas Temat założony przez niniejszego użytkownika |
» 2014-04-06 22:45:28 Poza tym nie chodzi o to. Musze podzielić ten ciąg na 5 elementowe pociągi, a te elementy które zostaną wpisuje w ostatni wiersz np 27 elementowy ciag dziele na 5 po 5 i ostatni 2 elementowy w sumie 6 wierszy. |
|
OSA_PL |
» 2014-04-07 01:35:00 void f( int * tab, int rozmiar ) { int ilosc_wierszy = rozmiar / 5 +(( rozmiar % 5 ) ? 1 : 0 ); int ** nowa_tablica = new int *[ ilosc_wierszy ]; for( int i = 0; i < ilosc_wierszy; i++ ) { if( i < rozmiar / 5 ) nowa_tablica[ i ] = new int[ 5 ]; else nowa_tablica[ i ] = new int[ rozmiar % 5 ]; } for( int i = 0; i < rozmiar; i++ ) { nowa_tablica[ i / 5 ][ i % 5 ] = tab[ i ]; } for( int i = 0; i < ilosc_wierszy; i++ ) delete[] nowa_tablica[ i ]; delete[] nowa_tablica; }
|
|
Midas Temat założony przez niniejszego użytkownika |
» 2014-04-07 10:06:14 Nie wiem, ale to wciąż nie działa. Zrobiłem coś takiego ale nie wiem teraz jak wpisywać te elementy do tej tablicy int ilosc_wierszy; if( rozmiar % 5 == 0 ) { ilosc_wierszy = rozmiar / 5; } else ilosc_wierszy =( rozmiar / 5 ) + 1;
int ** n = new int *[ ilosc_wierszy ];
for( int i = 0; i < ilosc_wierszy; i++ ) { n[ i ] = new int[ ilosc_wierszy ]; }
for( int i = 0; i < ilosc_wierszy; i++ ) { for( int c = 0; c < 5; c++ ) *( *( n + i ) + c ) = zm_Y[ c ]; } |
|
« 1 » 2 |