Ich schreibe ein Programm, das zwei Vektoren mit zufälligen Ints (weniger als 1000) mit 2 verschiedenen gesetzten Listen füllen muss. wenn ich versuche, srand mit den samen zu verwenden, die ich verwenden soll, bekomme ich eine sehr seltsame ausgabe.srand funktioniert nicht richtig
hier ist der Code ich so weit ...
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>
using namespace std;
void Vectors(vector <int> v1, vector <int> v2, int s1, int s2) {
srand(s1);
for (int i = 0; i < 200; i++) {
v1.push_back(rand() % 1000 + 1);
//v1[i] = rand() % 1000 + 1;
}
srand(s2);
for (int i = 0; i < 100; i++) {
v2.push_back(rand() % 1000 + 1);
//v2[i] = rand() % 1000 + 1;
}
}
void prnt(vector<int> v) {
for (int i = 0; i < 20; i++) {
cout << v[i] << " ";
if (i == 9 || i == 19) {
cout << endl;
}
}
}
int main() {
vector<int> vec1;
vector<int> vec2;
vec1.resize(200);
vec2.resize(100);
Vectors(vec1, vec2, 1, 3);
prnt(vec1);
prnt(vec2);
return 0;
system("pause");
}
jedoch geschrieben habe, wenn ich es die Ausgabe bekomme ich diese laufen ... auch
0 29046 -309340552 29046 32 0 134113 0 0 0
-309339528 29046 64 0 48 0 0 0 986 169
0 0 -309340552 29046 32 0 134113 0 0 0
-309339528 29046 64 0 48 0 0 0 986 169
ist, wird es erlaube mir nicht, die Vectors-Methode zu verwenden, wenn vec1 und 2 nicht auf eine bestimmte Größe initialisiert sind.
ich von Java nach C nur übertragen haben ++ so dass jede Hilfe Sie mir wird anbieten können sehr geschätzt, da es sich auf etwas so trivial in Java
Off topic, aber warum put 'system (" pause ");' nach 'return 0;'? – Amadeus
Es gibt 2 Möglichkeiten, mit Vektoren umzugehen. Sie können die Größe ändern, indem Sie N Elemente zuweisen, die Sie als 'v [0] .. v [v.size() - 1]' adressieren können, oder Sie können 'push_back' verwenden, um die Größe um eins zu vergrößern und füge das neue Element am Ende hinzu. Was Sie jetzt tun, ist die Zuweisung von Platz für 200 Elemente, dann Hinzufügen von 200 mehr am Ende, was wahrscheinlich nicht das ist, was Sie tun möchten. –
Manchmal können Fehler dein Leben retten. Es ist Zeit aufzuhören, 'rand()' zusammen zu verwenden und zu modernen C++ - Zufallsgeneratoren zu wechseln. – CroCo