Wątek przeniesiony 2018-01-25 20:06 z C/C++ przez ŁF.

Tablica, której ilości zmiennych nie znamy

0

Jak zapisać tablicę, w której ilość zmiennych będzie wprowadzał użytkownik? Np wprowadza liczbę 7 i siedem różnych zmiennych (tego samego typu) albo liczbę 2 i dwie zmienne(tego samego typu). Czyli wprowadza n i tablicę a[n] (wiem, że taki zapis jest niepoprawny).

5

Użyć vectora?

0

Pewnie najlepiej napisać 2 słowa które nic nie znaczą dla niego albo odesłać go do innego forum... jprd

najpierw musisz zrobić taką specjalną zmienną np.
int *cos;

  • istotne jest tutaj postawienie "gwiazdki" przed nazwą zmiennej - w ten sposób zrobisz wskaźnik
    następnie możesz utowrzyć inna zmienna która będzie rozmiarem "tablicy"

np.

int *tablica;
int wielkosc;

potem wystarczy to utworzyć poprzez

tablica = new int[wielkosc];

wtedy "tablica" czyli nasza wcześniej utworzona zmienna z "gwiazdką" będzie mogłą być takiego rozmiaru jaki podamy w "wielkosc"

<nazwa zmiennej z gwiazdką> = new <typ zmiennej>[<rozmiar tablicy>];

jakbyś potrzebował to tak się kasuje takie tablice:
delete [] <nazwa>;

3

ewnie najlepiej napisać 2 słowa które nic nie znaczą dla niego albo odesłać go do innego forum... jprd

Odsyłanie do dokumentacji jest złe? Lepiej przepisywać dokumentację w poście?

https://dsp.krzaq.cc/post/176/ucze-sie-cxx-kiedy-uzywac-new-i-delete/

0

Jeśli możesz to skorzystaj z mechanizmu VLA i zadeklaruj tablicę po tym, jak użytkownik wprowadzi liczbę z klawiatury. Tę liczbę wrzuć do zmiennej, a zmienną użyj do deklaracji rozmiaru tablicy.

int size;
cin >> size;

int array[size];  // voilà!

Możesz też użyć czegoś sensownego, np. wektora, choć pachnie mi tu szkolnym zadaniem. ;)

2

Pytanie jest o C++, a VLA jest w C. Tu trzeba użyć vectora, nawet nie ma co doradzać malloc ani new początkującemu...

#include <vector>
#include <iostream>

int main() {
    int n;
    std::cout << "Ile liczb? ";
    std::cin >> n;
    std::vector<double> tab(n);
    for(int i = 0; i < n; ++i) {
        std::cout << "Podaj element nr " << i << ": ";
        std::cin >> tab[i];
    }
}

I dalej używaj jak surowej tablicy, reszta w dokumentacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1