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

Tabliczka mnożenia na tablicach dynamicznych

Ostatnio zmodyfikowano 2014-11-27 21:21
Autor Wiadomość
lvcky
Temat założony przez niniejszego użytkownika
Tabliczka mnożenia na tablicach dynamicznych
» 2014-11-27 20:38:49
Witam serdecznie mam napisać program (tabliczka mnożenia).
Założenia:
- tablice dynamiczne, dwuwymiarowe
- wielkość tabliczki zależna od użytkownika

Umiem zrobić ten program na tablicach dwuwymiarowych ale nie dynamicznych.

Mój kod, który jak na razie się nie kompiluje

C/C++
int * tab;


int n;
cout << " Podaj wielkosc tabliczki mnozenia: ";
cin >> n;

tab = new int[ n ][ n ];

cout << "" << endl;
printf( "%5c", ' ' );
for( int i = 1; i <= n; i++ )

     printf( "%5d", tab[ i ] );

cout << "\n------+--------------------------------------------------\n";
cout << "      |";
for( int i = 1; i <= n; i++ )

{
   
    printf( "\n%5d", tab[ i ] );
   
    for( int j = 1; j <= n; j++ )
    {
       
        printf( "%5d", tab[ j ] * tab[ i ] );
       
    }
}
cout << "\n\n\n";

system( "pause" );

}
P-121568
NopeDotAvi
» 2014-11-27 20:40:46
tab = new int[ n ][ n ];
 tak się nie alokuje dwuwymiarowych dynamicznych tablic.

Do czego Ci ta tablica? Masz tam zapisywać dane? Czy to z tej tablicy mają zostać pobrane?
P-121569
lvcky
Temat założony przez niniejszego użytkownika
» 2014-11-27 20:46:16
Tak, mają tam zostać zapisane dane, a później na ich podstawie wyświetlona tabliczka mnożenia.
P-121570
lvcky
Temat założony przez niniejszego użytkownika
» 2014-11-27 21:03:26
Ktoś jest w stanie mi pomóc? :)
P-121573
NopeDotAvi
» 2014-11-27 21:06:44
Taka moja luźna iplementacja:
C/C++
#include <iostream>
using namespace std;

int main()
{
    int n;
    cout << "Podaj wielkosc tabliczki mnozenia: ";
    cin >> n;
    int ** tab = new int *[ n ];
    //alokacja wierszy/kolumn
    for( int i = 0; i < n; ++i )
    {
        tab[ i ] = new int[ n ];
    }
    //zapelnianie
    for( int i = 0; i < n; ++i )
    {
        for( int j = 0; j < n; ++j )
             tab[ i ][ j ] = i + 1;
       
    }
    //wypisywanie zapelniona tablice
    for( int i = 0; i < n; ++i )
    {
        for( int j = 0; j < n; ++j )
        {
            cout << tab[ i ][ j ];
        }
        cout << endl;
    }
    cout << endl;
   
    //wypisywanie tabliczki mnozenia
    for( int i = 0; i < n; ++i )
    {
        for( int j = 0; j < n; ++j )
        {
            cout << tab[ i ][ j ] << "*" << tab[ j ][ i ] << "=";
            cout << tab[ i ][ j ] * tab[ j ][ i ] << " ";
        }
       
        cout << endl;
    }
   
    //zwalnianie pamieci
    for( int i = 0; i < n; ++i )
         delete[] tab[ i ];
   
    delete[] tab;
    return 0;
}
Jest dla tabliczki mnożenia o takiej samej wielkości (np. 8x8 tak, ale 8x10 nie).
Jak czegoś nie wiesz to pytaj
P-121574
lvcky
Temat założony przez niniejszego użytkownika
» 2014-11-27 21:21:23
Wszystko rozumiem, bardzo fajnie napisane i dziękuję.
Jedyne co to fakt samego wyświetlania.
Próbuje trochę zmienić Twój kod i nie mogę sprowadzić go do takiej postaci by tabliczka była wyświetlana mniej więcej w taki sposób:


    x   1 2 3 4 5
  ----+-------------
    1   1 2 3 4 5
    2   2 4 6 8 10
  
itd...

Ktoś chętny do pomocy? :)
P-121577
« 1 »
  Strona 1 z 1