Rand()
-
Ja ich weiss das das ne Endlosschleife ist, soll es ja auch sein...
aber ich versteh nicht: Ich kann das Programm so oft öffnen wie ich will, es kommt immer 41 herraus...
-
Dann verstehe ich das Konstrukt nicht wirklich. Sinn macht das irgendwie keinen...
Zu deinem eigentlichen Problem: die Funktion gibt keine wirkliche Zufallszahl zurück, sondern einen berechneten Wert. Um einen Wert zu berechnen, braucht man einen Ausgangswert. Und der ist bei der Funktion immer derselbe, deshalb ist auch das Ergebnis immer dasselbe.
-
Mh also ich brauch die Zufallszahl, um ein Spiel zu Programmieren.
also versuchte ich erst mal so, etwas mit den Zufallszahlen zurechtzukeommen, und wollte einfach mal unendlich viele und unterschiedliche Zahlen ausgeben... : D
und wie kann ich dann machen, dass das immer eine andere Zahl ergibt???
-
Mit srand() warst du schon auf der richtigen Spur. Versuch mal, hier im Forum was zu finden.
Dann gilt aber immer noch, was ich oben geschrieben habe: Du veränderst x gar nicht in der Schleife. Du weist nur einmal eine Zufallszahl zu und gibst diese eine Zahl einfach nur endlos aus. Würdest du die Zufallszahl immer neu erstellen, würdest du auch eine endlose Folge von Zufallszahlen bekommen.
Ohne srand() wäre dann nur noch diese Folge bei jedem Programmstart dieselbe.
-
Mh okay... ich hab das jetzt so gelöst :
srand(static_cast<unsigned>( time(0) ) ); cout << rand() << endl;
Das funktioniert auch so weit so gut...
aber wenn ich das begrenzen möchte, und zwar so :srand(static_cast<unsigned>( time(0) ) ); cout << rand() %10 +1 << endl;
Dann geht es nicht mher...
-
Mh okay... keine ahnung warum aber jetzt gets...
villeicht, weil mein PC übervordert war : D systemauslastung war bei 100% : D
naja ok... ich hätta da aber noch eine andere Frage:
und zwar ist es möglich, wenn ich einen char array habe aber nicht alle "felder" belegt habe, zu zählen, wie viele "Felder" belegt sind???
also wie z.B. bei strings diese funktion :
#include <string.h> //bin mir nicht mehr ganz sicher ob es diese libery war... int main() { string x = halloxy; int anzahlderbuchstaben; string.size(anzahlderbuchstaben); return 0; } /* Weiss nicht mehr ob es so war... aber so irgendwie... */
Und ob das hallt auch mit einem char arry geht...
-
Ach nee sorry (zu zeile
das war:
anzahlderbuchstaben = x.size();
-
Mh ja... das würde mich auch mal interresieren...
-
Wenn du das Array vorher initialisierst, ja.
Wenn der String der in dem Array steht Nullterminiert ist ebenfalls
Ansonsten wird es schwierig zu entscheiden, ob die Zelle von dir belegt wurde oder irgendein Zufallswert drin steht...Viele Grüße
-
Okay, habe jetzt nur den ersten Beitrag gelesen, deshalb weiß ich nicht, ob das Problem schon gelöst ist. Eine Zufallszahl erzeuge ich so:
#include <iostream> #include <Windows.h> using namespace std; #pragma comment (lib, "winmm.lib") int main () { // initialize random generator srand (timeGetTime ()); // Würdest Du diese Zeile weglassen, wäre Deine Zufallszahl immer die Selbe // initialize random number // int random_number = (rand ()%105)+10; // Es wird eine zufällige Zahl zwischen 10 und 105 gesucht // show random number cout << random_number << endl; system ("pause"); return 0; }