Textdatei schreiben
-
Habe ein Programm geschrieben bei dem ich ein Array,das
zufällige Werte aus einem bestimmten Bereich enthält.
Für jeden Durchlauf (insgesamt 3 Durchläufe) möchte ich:
- ein Array mit drei Elementen zufällig generieren
- die Elemente des Arrays aufsummieren und in einem Zahl S speichern
-Zum Schluß möchte ich in einer Textdatei die Durchlaufnummer
und die resultierende Summe S schreiben wie z.B.
j=0 S=x
j=1 S=x
j=2 S=x
Das Problem ist,dass die zufälligen Zahlen in jedem
Durchlauf immer gleich bleiben obwohl es nicht der Fall
sein soll und ich weiss nicht genau
wie ich die Durchlaufnummer und die Zahl S in einer
Textdatei schreiben kann.
Hätte Jemand vielleicht eine Idee?
Mein Code sieht folgendermassen aus:#include <stdlib.h> #include <time.h> #include <iostream> using namespace std; // Die Funktion RandomNum generiert zufällige Zahlen // im Bereich zwischen gross und klein void RandomNum(double klein,double gross ,int p, double *array) { srand((unsigned)time(0)); double range=(gross-klein)+1; for (int i=0; i<p; i++){ array[i]=klein+int(range*rand()/(RAND_MAX + 1.0)); } } //die Funktion AdditionArr summiert die Elemente des Arrays // und speichert sie in einer Zahl Sum double AdditionArr (double *Arr,int k) { int i; double Sum=0.0; for (i=0; i<k; i++){ Sum+=Arr[i]; } return Sum; } int main() { int p=3; int j; double S,array[3]; for(j=0;j<3;j++){ RandomNum(-1.5,1.5 ,p,&array[0]); S=AdditionArr (&array[0],p); for (int k=0; k<p; k++){ cout << "array"<<"["<< k << "]" <<" = " << array[k] << endl; } cout << "S=" << S << endl; cout << endl; } return 0; }
-
Hallo,
Nimm
srand((unsigned)time(0));aus deiner Funktion raus und rufe srand einmal am Anfang der main auf. srand initiualisiert den Zufallsgenerator mit einer Anfangsnummer. Das musst du aber nur einmal machen.
-
es hat gepklappt!! danke

hätte Jemand eine Idee wie ich die Anzahl
der Durchläufe und die Summe S in einer
.txt Datei schreiben kann?
Danke
-
-
Danke für den Link.
Noch eine Frage wäre es möglich den Befehl:srand((unsigned)time(0));mit static_cast umzuschreiben? wenn ja wie?
Danke
-
srand(static_cast< unsigned >(time(0)));
-
ctime, cstdlib
-
danke schön für euere Hilfe
