
Originariamente inviata da
torn24
Ciao, in C devi usare la funzione strcpy()
http://www.cplusplus.com/reference/cstring/strcpy/
Ma il tuo programma potrebbe non dare i risultati voluti perché la funzione,istruzione
y = rand()%4+1; potrebbe restituire più volte lo stesso risultato-numero, quindi dovresti realizzare un controllo su i numeri generati.
Grazie mille per la risposta! Ieri sera ho ottimizzato il programma e ho risolto il problema copia della stringa...sto cercando un modo efficace per non ripetere lo stesso sorteggio in una partita, posso farlo con un controllo sui valori precedenti e non dovrebbe essere un problema, il problema principale è riuscire a contare quante volte ogni giocatore giocatore appare, di modo tale che ognuno giochi più o meno lo stesso numero di partite. Hai qualche idea/spunto per questo conto?
Codice:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX 32
int main(){
int i, j, p, z, k, N, y;
char s[MAX];
srand(time(NULL));
do {
printf("Inserire numero giocatori: ");
gets(s);
N = atoi(s);
if (N < 4 || N > MAX)
printf("Valore errato: deve essere tra 4 e %d\n", MAX);
} while (N < 4 || N > MAX);
char player[N][MAX];
for (i = 0; i < N; i++) {
printf("Giocatore %d: ", i+1);
gets(s);
if (strlen(s) == 0) {
printf("Nessun giocatore specificato - ripeti\n");
i--;
}
else
strcpy(player[i], s);
}
for (j = 0; j < N; j++) { //CONTROLLO
printf("\n%s", player[j]);
}
printf("\nInserire numero partite totali: ");
scanf("%d", &p);
for (i = 0; i < p; i++) {
char a[4][MAX];
for (j = 0, z = 0; j < 4; j++, z++) {
y = (0 + rand() % N);
strcpy(a[j],player[y]);
}
}
printf("\n %s - %s VS %s - %s", a[0], a[1], a[2], a[3]);
}
return 0;
}