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).
Użyć vectora?
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>;
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/
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. ;)
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.