s.....r
s.....r
#programowanie #cpp #programujzdebilem

Chce se napisać programik, który mi randomowe liczby będzie zapisywał w pliku .txt narazie se sprawdzam, czy mi wypisze te randomowe liczby. Tutaj mam problem z tablicą

Jak napisać, że chce tablice o wielkości x?

Jeśli napiszę sobie int tablica [100]; no to mi zadziała.. ale ja chce taką akurat z x.

------------------------------------------------------------------

#include

#include

#include

#include

using namespace std;

int main () {

srand(time(0));

int x;

int tablica[];

cin >> x;

for (int i=0; i
tablica[i] = rand();

}

for (int i=0; i
//fstream mat;

//mat

cout << tablica[i] << endl;

}

return 0;

}

------------------------------------------------------------------
  • Najlepsze
  • Wszystkie komentarze
echelon_
@studbazer: Tablice są niekoszerne. Niezależnie jaki rozmiar podasz to i tak zawsze będzie o 1 za mało.
sylwke3100
@studbazer: vector tablica;

wkładasz do wektora tablica.push_back(coś)

ilość elementów tablica.size();
sylwke3100
@l0stfake7: To nie jest dynamiczne alokowane bo w momencie utworzenia obiektu ty podajesz mu rozmiar to raz a dwa że nie można w trakcie usuwać obiektów bo wymaga to przepisania całego obiektu ponownie. Poza tym Wektory są bezpieczniejsze i wygodniejsze.
l0stfake7
@sylwke3100: prawdopodobnie inaczej pojmujemy termin "dynamiki", ten kod jest jak najbardziej odpowiedni do zastosowania w tej sytuacji.
Niebieskowaty
@studbazer:

int len;

cin>>len;

int* array=new int[len];
KrzaQ2
@vipe: To jest C99, ew. C++17, teraz C++ nie oferuje moƶliwości dynamicznego ustalania wielkości tablicy.
l0stfake7
@studbazer: Po prostu potrzebujesz wykorzystać pamięć dynamicznie alokowaną ;)

Łap kod:


#
s.....r
s.....r
@studbazer: Zadziałało...

Znaczy, że muszę tego:

cin >>
vipe
vipe
0
@studbazer: Pisząc:

int tablica[x];

deklarujesz tablicę o rozmiarze 'x', a dokładniej o takiej liczbie komórek, jaka jest wartość 'x' w tym właśnie momencie. Jeśli modyfikujesz 'x' potem (przez wczytanie z cin), to nie ma to wpływu na rozmiar tablicy.

Podsumowując, jeśli deklarujesz 'int tablica[x]' bez uprzedniego przypisania konkretnej wartości do 'x', to ta tablica będzie mieć niezdefiniowany rozmiar (może 0, a może 99999...).
echelon_
@studbazer: Ech... to taki żarcik branżowy był. Ach wy studenci i te wasze tablice...
s.....r
s.....r
@echelon_:

:D sorka ja do bystrych nie należę, postawiłbyś przede mną stodołę, a ja bym nadal jej szukał.


jak w tym przypadku użyć
echelon_
@studbazer: Wektor/Listy. Nie pamiętam już co w tym śmiesznym języku było.
s.....r
s.....r
@sylwke3100:

vector tablica;

for (int i=0; i<10; i++)