Forum: PC-Programmierung Einfaches Würfelprogramm


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von T. N. (Firma: privat) (kalte_feut)


Bewertung
0 lesenswert
nicht lesenswert
Liebe Programmierer,

ich möchte ein einfaches Würfelprogramm schreiben,
dass mir die Zahlen 1 bis 6 zufällig wiedergibt.
Nun habe ich nicht sonderlich Ahnung auch weil es x verschiedene 
Herangehenesweisen und Kompiler gibt

mein quellcode ist:


#include <iostream>
#include <string>
#include <time.h>


using namespace std;


void Main ()

{ int x;
srand (time(Null));
x = rand() % 6 + 1;

cout <<  " Du hast eine " << x >> " gewürfelt! "  endl;

}
 return 0;

Als Antwort erhalte ich das srand time (Null) und rand  nicht festgelegt 
ist.
Habe ich vlt vergessen eine Biblibothek mit einzubinden, oder irgendwas 
falsch geschrieben??

Als zweite Aufgabe möchte ich ein Programm erstellen welches mir 3 
Würfel simuliert und gleichzeitig untereinander ausgibt. Also muss ich 
mit 3 variablen x, y, z arbeiten.

Als Kompiler nutze ich den Def C++ Bloodshed

Vielen Dank für eure Unterstützung.

Grüße Feut

von Peter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Schau halt mal nach in welcher lib die Funktionen enthalten sind

von Vincent H. (vinci)


Bewertung
-1 lesenswert
nicht lesenswert
Ein Würfelprogramm, dass 10x auf Basis einer Uniformverteilung würfelt 
ist 1:1 als Beispiel auf cppreference zu finden:
https://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution

von Helmut S. (helmuts)


Bewertung
-1 lesenswert
nicht lesenswert
Vielleicht gibt es in deinen Bibliotheken ein math.h.

: Bearbeitet durch User
von Dirk B. (dirkb2)


Bewertung
0 lesenswert
nicht lesenswert
Da wird nicht time angemeckert sondern Null.

C++ ist case sensitive. Null ist etwas anderes als NULL.

time.h ist der header für den C-Compiler.
Für C++ gibt es ctime

von zitter_ned_aso (Gast)


Bewertung
0 lesenswert
nicht lesenswert
muss man
1
main

nicht klein schreiben?

von zitter_ned_aso (Gast)


Bewertung
0 lesenswert
nicht lesenswert
und wenn schon return 0, dann auch "int main" und nicht "void main".

Und "return 0" vor dem abschließenden "}"-Zeichen. Und nicht danach.

von zitter_ned_aso (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Und vor dem "endl" fehlt ein <<-Operator.


und was ist <<x>>?

von Nano (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das Leerzeichen nach " gewürfelt! " kann man sich auch sparen.

Deine Antwort findest du übrigens in diesem Artikel, ich werde es dir 
aber nicht vorkauen, schließlich willst du etwas lernen:

http://www.cplusplus.com/reference/ctime/time/

von Nano (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Außerdem verlangt srand ein unsigned int.
t_time kann allerdings abhängig vom System bspw. auch vom Typ __int64 
sein.

Ein expliziter cast wäre sinnvoll.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.