jeudi 14 septembre 2017

srand not working properly

I'm writing a program that needs to fill two vector with random ints(less than 1000) using 2 different seeded lists. when i try to use srand with the seeds i am supposed to use it gives me a very strange output.

here is the code ive written so far...

 #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");
 }

however when i run it the output i get is this...

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

also it will not allow me to use the Vectors method if vec1 and 2 are not initialized to some size.

I have just transferred from Java to C++ so any help you can offer me will be very appreciated as it is maddening to be stuck on something so trivial in java




Aucun commentaire:

Enregistrer un commentaire