Andreas Pflug: 52 Karten, Wert + Farbe in Arrays... elegantere Lösung?

Beitrag lesen

Gibt es eine bessere Lösung?

Du kannst auch eine einzige Zufallszahl verwenden:

  
#include<stdio.h>  
#include<stdlib.h>  
  
int main(int argc, char *argv[]) {  
  int x, farbe, zahl;  
  char *sf[] = {"karo", "herz", "pik", "kreuz"};  
  char *sz[] = {"zwei", "drei", "vier", "fuenf", "sechs",  
                "sieben", "acht", "neun", "zehn",  
                "Bube", "Dame", "Koenig", "Ass"};  
  
  if(argc!=2) return 1;  
  srandom(atof(argv[1]));  
  x = (int)(52*(double)random()/RAND_MAX);  
  farbe = x/13;  
  zahl  = x%13;  
  
  printf("Die Karte lautet %s %s!\n", sf[farbe], sz[zahl]);  
  return 0;  
}  

Aufruf mit Integer-Zahl als Argument
für den Random-Seed...

MfG

Andreas