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

[Rozdział 21] Losowanie bez powtórzeń, praca domowa.

Ostatnio zmodyfikowano 2017-02-06 22:03
Autor Wiadomość
thewitcher
Temat założony przez niniejszego użytkownika
[Rozdział 21] Losowanie bez powtórzeń, praca domowa.
» 2017-02-06 21:26:56
jestem w trakcie pisania kodu pracy domowej z rozdziału w temacie, ale stanąłem na problemie którego nie mogę rozwiązać, jakby ktoś mógł zerknąć na kod i pomóc mi w zrozumieniu dlaczego program wypisuje inne niż wczytane do tablicy liczby byłbym bardzo wdzięczny, oto kod:
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int WpisywanieLiczbDoTablicy( int RozmiarTablicy )
{
    int Tablica[ RozmiarTablicy ];
    int i = 0;
    do
    {
        int a;
        cout << "Podaj liczbe do wczytania: " << endl;
        cin >> a;
        Tablica[ i ] = a;
        i++;
    } while( i < RozmiarTablicy );
   
    return Tablica[ RozmiarTablicy ];
}
void WypiszZawartoscTablicy( int Tablica[], int Licznik )
{
    int i = 0;
    do
    {
        cout << Tablica[ i ] << " ";
        i++;
    } while( i < Licznik );
   
}

int main()
{
    int RozmiarTablicy;
    cout << "Prosze podac rozmiar tablicy: " << endl;
    cin >> RozmiarTablicy;
    int Tablica[ RozmiarTablicy ];
    Tablica[ RozmiarTablicy ] = WpisywanieLiczbDoTablicy( RozmiarTablicy );
    WypiszZawartoscTablicy( Tablica, RozmiarTablicy );
    return 0;
}
P-157419
carlosmay
» 2017-02-06 21:51:01
return Tablica[ RozmiarTablicy ];
Tutaj jest UB. Wyjście poza tablicę. Poza tym próbujesz zwrócić nie tablice, tylko jeden element.

C/C++
cin >> RozmiarTablicy;
int Tablica[ RozmiarTablicy ];
To jest niezgodne ze standardem C++. Rozmiar tablicy musi być znany w czasie kompilacji i być
constexpr
.
Skorzystaj z std::vector - "dynamicznej tablicy".
P-157421
thewitcher
Temat założony przez niniejszego użytkownika
» 2017-02-06 21:52:42
czyli nie da się returnem zwrócić tablicy z funkcji?
P-157422
carlosmay
» 2017-02-06 21:56:26
czyli nie da się returnem zwrócić tablicy z funkcji?
Da się, ale wskaźnik. Lokalnej tablicy nie zwrócisz, bo po wyjściu z funkcji ona przestaje istnieć.
P-157423
thewitcher
Temat założony przez niniejszego użytkownika
» 2017-02-06 22:03:57
ok, dzięki za pomoc :)
P-157424
« 1 »
  Strona 1 z 1