13/06/08 9:32
giocala88
Salve, ho un piccolissimo problema con gli ultimi due if non mi valutano l'espressione come dovrebbero....sapreste dirmi come mai????....grazie anticipatamente.....ciao.....
Ecco il sorgente:
Pierotofy: aggiustato il code
Ecco il sorgente:
#include <stdio.h> #include <time.h> #include <stdlib.h> #define MAX_CARTE 40 typedef struct { char palo; int numero; } Carte; typedef struct { Carte vett_carte[MAX_CARTE]; int num_carte; } CarteNapoletane; /* dichiarazioni di funzioni */ void leggi_da_file(CarteNapoletane *dat); void stampa_a_video(CarteNapoletane dat); int main() { CarteNapoletane carte; leggi_da_file(&carte); stampa_a_video(carte); return 0; } /* definizione della funzione per leggere da file.txt */ void leggi_da_file(CarteNapoletane *dat) { /* dichiarazioni delle variabili */ FILE *file; /* lavoro: puntatore al file di input */ int carte_lette; /* output: numero delle carte lette */ dat->num_carte = 0; /* variabile di tipo puntatore a struttura inizializzata a zero */ /* apri il file */ file = fopen("file.txt", "r"); /* prima lettura: assegna a chiavi_lette fscanf */ carte_lette = fscanf(file,"%d%c", &dat->vett_carte[dat->num_carte].numero, &dat->vett_carte[dat->num_carte].palo); /* cicla gli studenti che hanno effettivamente le chiavi cognome matricola e voto */ while(carte_lette == 2) { dat->num_carte++; /* scorrimento di tutti gli studenti presenti nel database */ /* seconda lettura: leggi nuovamente da file */ carte_lette = fscanf(file,"%d%c", &dat->vett_carte[dat->num_carte].numero, &dat->vett_carte[dat->num_carte].palo); } /* chiudi i file */ fclose(file); } /* definizione di funzione di scrittura a video */ void stampa_a_video(CarteNapoletane dat) { /* dichiarazioni delle variabili */ FILE *file; /* lavoro: puntatore al file di output */ int i, j, k; /* indice di scorrimento ciclo for */ Carte temp; char nome_giocatore[30]; /* nome del giocatore */ int butta_tu; /* carta pescata che decide chi iniziare */ int scelta; /* carte che butta l'utente */ /* MENU */ /* acquisire nome giocatore */ printf("\nNome giocatore\n"); scanf("%s", nome_giocatore); printf("\n < Si inizia a giocare - %s - >\n", nome_giocatore); printf("\n\n Le carte decidono chi buttare per primo\n\n"); /* pesca carta per chi buttare prima */ srand(time(0)); butta_tu = 1+rand() % 10; switch(butta_tu) { case 1: printf("\t PER ME... 1\n"); break; case 2: printf("\t PER ME... 2\n"); break; case 3: printf("\t PER ME... 3\n"); break; case 4: printf("\t PER ME... 4\n"); break; case 5: printf("\t PER ME... 5\n"); break; case 6: printf("\t PER ME... 6\n"); break; case 7: printf("\t PER ME... 7\n"); break; case 8: printf("\t PER ME... 8\n"); break; case 9: printf("\t PER ME... 9\n"); break; case 10: printf("\t PER ME... 10\n"); break; } if(butta_tu == 1 || butta_tu == 3 || butta_tu == 5 || butta_tu == 7 || butta_tu == 9) { printf("\n Tocca a me buttare per primo!\n"); } printf("\n\n\nCARTE PC -> "); /* stampa a video le carte giocatore */ for(i = 0; i < 3; ++i) printf("%d%c ", dat.vett_carte[i].numero, dat.vett_carte[i].palo); /* stampa a video la BRISCOLA */ for(k = 3; k < 4; ++k) printf("\n\n\nBRISCOLA -> %d%c", dat.vett_carte[k].numero, dat.vett_carte[k].palo); printf("\n\n\nLE TUE CARTE -> "); /* stampa a video le carte giocatore */ for(j = 4; j < 7; ++j) printf("%d%c ", dat.vett_carte[j].numero, dat.vett_carte[j].palo); printf("\n [1] [2] [3]\n"); if(butta_tu == 2 || butta_tu == 4 || butta_tu == 6 || butta_tu == 8 || butta_tu == 10 || butta_tu == 1 || butta_tu == 3 || butta_tu == 5 || butta_tu == 7 || butta_tu == 9) { printf("\n Tocca a te buttare per primo!\n"); scanf("%d", &scelta); if(scelta == 1) { if(dat.vett_carte[j].palo == dat.vett_carte[k].palo) { printf("E' una briscola\n"); } else if(dat.vett_carte[j].palo != dat.vett_carte[k].palo) printf("Non e' una briscola\n"); } } }
Pierotofy: aggiustato il code
Ultima modifica effettuata da pierotofy 13/06/08 11:15
aaa