Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Brauche Hilfe mit Zufallsgenerator

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.05.2014, 11:30 Uhr
~Oli_1991
Gast


Kann mir jemand helfen ich habe mit diesem Zufallsgenerator Probleme. Bei der Ausgabe der letzten Zufallszahl bekomme ich eine komische Zahl heraus.

Gruß Oli



C++:
// Zufall.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
#include "stdafx.h"
#include <stdlib.h>
#include <locale.h>
#include <math.h>
#include <conio.h> // für getche()
#include <ctype.h> // für toupper()
#include <time.h> // für Zufallsgenerator

int _tmain(int argc, _TCHAR* argv[])
{    
    setlocale(LC_ALL, "German");

    int y, i, max, werte[20], ziehungen;
    

    do
    {
    printf("\nBitte geben sie die höchstmögliche Zufallszahl ein (max. 20):");
    scanf ("%i",&max);
    system("CLS");
    }
    while (max >20);

    printf("Bitte geben sie die Anzahl der Ziehungen ein");
    scanf("%i",&ziehungen);
    
    for(i=0; i<=max-1; i++)
    {
        werte[i] = 0;
        
    }
    
    srand (time(NULL));

    for(i=1; i<ziehungen; i++)
    {
        
        
        y = rand () %max+1;   // y ist Zufallszahl z.b. 5

        werte[y]++;   // y =5 z.b. wird um 1 erhöht bei einem Durchgang
    }
    
    for(i=1; i<max+1; i++)
    {
        printf("Die Zahl %i wurde %i mal gezogen\n", i, werte[i]);
    }


    printf ("\nProgrammende\n\n");
    system ("pause");
    return 0;

    }


Dieser Post wurde am 25.05.2014 um 12:17 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.05.2014, 11:51 Uhr
Tommix



Hallo,
Du initialisierst nur bis max-1:

C++:
for(i=0; i<=max-1; i++)
{
    werte[i] = 0;
}


In werte[max] steht daher Müll.
Nebenbei ist "(max. 20)" falsch, da werte[20] nur werte[0] bis werte[19] umfaßt.

- Tommix

Dieser Post wurde am 25.05.2014 um 11:52 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.06.2014, 17:37 Uhr
Napsta



Ein Tipp zur Deklaration:

C++:
int wert[20] = {0};


Somit ist alles von wert[0] bis wert[19] 0 .

MFG Napsta

Dieser Post wurde am 04.06.2014 um 17:38 Uhr von Napsta editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: