Autor Beitrag
JeThi
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Fr 25.11.16 23:03 
Hallo Leute,
ich bin neu hier, also entschuldigt bitte, wenn diese Frage bereits existiert oder ich in einem falschen Thread nachfrage. Könnt ihr mir trotzdem gerne Bescheid sagen. Nun aber zu meiner Frage.

Ich habe vor eine Art Fussballsimulation zu schreiben in C, einfach nur um ein bisschen das Programmieren an einer konkreten Aufgabe zu vertiefen. Also entschied ich mich zum anhängendem Quellcode. Dabei habe ich mir gedacht, ich setze die jeweiligen Heim- und Auswärtstore als Variablen fest, um mithilfe derer dann einfacher die Tabelle errechnen zu können. Jedoch war mein Ziel, dass sich die Ergebnisse der einzelnen Spiele bei jedem Programmstart ändern, also die Zufallszahlen in den Variablen variieren? Kennt einer von euch evtl eine Lösung?

Ich danke jetzt bereits für eure Hilfe und entschuldige mich für jeden Fehler, den ihr im Programmcode findet. Für Tipps, die nichts mit meinem Problem zu tun haben bin ich selbstverständlich jederzeit offen.

Vielen Dank

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
  #include <stdio.h>
  #include <stdlib.h>
  #include <time.h>

  int main(void)
  {
    int i, ht1, ht2, ht3, ht4, ht5, ht6, at1, at2, at3, at4, at5, at6;//Variablen aufzählen
    ht1=rand() % 4;//Variablen definieren
    ht2=rand() % 4;
    ht3=rand() % 4;
    ht4=rand() % 4;
    ht5=rand() % 4;
    ht6=rand() % 4;
    at1=rand() % 4;
    at2=rand() % 4;
    at3=rand() % 4;
    at4=rand() % 4;
    at5=rand() % 4;
    at6=rand() % 4;
    time_t t;


    time(&t);

srand((unsigned)time(NULL));              /* Zufallsgenerator initialisieren */

    printf("Hertha BSC %i:%i Hamburger SV\n", ht1, at1);
    printf("BSC Jena %i:%i TSV Zarpen\n", ht2, at2);//Ergebnis ausgeben
    system("PAUSE");
    printf("\nHertha BSC %i:%i BSC Jena\n", ht3, at3);
    printf("Hamburger SV %i:%i TSV Zarpen\n", ht4, at4);
    system("PAUSE");
    printf("\nTSV Zarpen %i:%i Hertha BSC\n", ht5, at5);
    printf("BSC Jena %i:%i Hamburger SV\n", ht6, at6);
  }


Moderiert von user profile iconNarses: Anhang in inline-code geändert.
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 762
Erhaltene Danke: 127



BeitragVerfasst: Sa 26.11.16 00:40 
srand() muss vor rand() aufgerufen werden.

ub60
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 26.11.16 13:04 
Hallo und :welcome:,

und du solltest unbedingt Arrays benutzen, damit du nicht für jede Variable extra Codezeilen erzeugen mußt:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
enum { MAX_CLUBS = 6 };

int ht[MAX_CLUBS], at[MAX_CLUBS];
int i;

for (i = 0; i < MAX_CLUBS; i++)
{
  ht[i] = rand() % 4;
  at[i] = rand() % 4;
}

Und zur Ergänzung zu user profile iconub60: srand() nur einmalig bei Programmstart (also üblicherweise direkt in der main()) aufrufen.
Und der time()-Aufruf ist hier überflüssig.