"Befehl" : rand / srand
-
for(int i=0;i<13;i++) { summe[i] = 0; } int plus = 0; for(int i = 0; i < input; i++) { seconds = time(NULL); plus += seconds; // warum nicht gleich plus += seconds + 1 plus++; srand(plus); ergebnis = (rand()%6+1)+(rand()%6+1); summe[ergebnis-2]++; } for(int i = 0; i < 11; i++) { prozent[i] = summe[i]/input; prozent[i]*=100; while(prozent[i] < 0) { prozent[i]*=10; } }
-
oh. jetzt erst gesehen:
srand() rufst du viel zu oft auf. Lies den Artikel nochmal der verlinkt wurde: srand nur einmal aufrufen. Öfters bringts nicht (auch wenn du künstlich den seed immer änderst).
summe hat nur 10 elemente und du gehst in der einen forschleife aber bis 13. schlecht. auch das 0 setzen geht mit memset() deutlich einfacher.
dort wo du das goto verwendest, was macht das eigentlich? wie kann bei summe[i]/input etwas negatives raus kommen? und ist es nicht so dass wenn du etwas negatives mit 10 multiplizierst es nie wirklich positiv wird?

versuche magic numbers zu vermeiden. du verwendest in schleifen manchmal 13, manchmal 11, das ist komisch. mal abgesehen davon dass dir dabei ein paar fehler passiert sind, ist es meistens besser einen namen statt einer zahl dort stehen zu haben.
und als übung kannst du versuchen die einzelnen abschnitte des programms in funktionen zu packen
