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

Ciąg liczb jako tablica dwuwymiarowa

Ostatnio zmodyfikowano 2014-04-07 19:07
Autor Wiadomość
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.

C/C++
#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.
P-107804
OSA_PL
» 2014-04-06 22:07:54
C/C++
for( int i = 0; i < rozmiar; i++ )
{
    nowa_tablica[ i / 5 ][ i % 5 ] = zm_Y[ i ];
}

Coś takiego?
P-107806
Midas
Temat założony przez niniejszego użytkownika
» 2014-04-06 22:12:38
Nie działa.
P-107807
OSA_PL
» 2014-04-06 22:14:52
W jakim sensie nie dziala?
P-107808
Midas
Temat założony przez niniejszego użytkownika
» 2014-04-06 22:21:23
Nie kompiluje się.
P-107809
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.
P-107811
OSA_PL
» 2014-04-07 01:35:00
C/C++
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 ];
    }
   
    /**********  Tutaj mozesz robic cos z ta tablica  **********/
   
    for( int i = 0; i < ilosc_wierszy; i++ )
         delete[] nowa_tablica[ i ];
   
    delete[] nowa_tablica;
}
P-107815
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
C/C++
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 ]; // <- w tym miejscu mam problem, nie chce mi kopiować do
    //    osobnych 5 elementowych wierszy
}
P-107820
« 1 » 2
  Strona 1 z 2 Następna strona