Visualizzazione dei risultati da 1 a 10 su 11

Visualizzazione discussione

  1. #3
    Quote Originariamente inviata da torn24 Visualizza il messaggio
    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; 
    }
    Ultima modifica di bicco3419; 10-05-2017 a 11:08

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.