Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113

    [C] Formattazione input/output

    Ciao dovrei stabilire un gironi di andata di un campionato di calcio.
    Ho stabilito gli accoppiamenti tramite due cicli for.
    per ciscuno accoppiamento devo inserire il risultato della partita in questo modo:

    Juve vs Milan : 3 - 2

    quindi ho fatto
    codice:
     printf("INSERISCI RISULTATI\n\n");
        for ( i = 0; i < 4; i++ ) {
            for ( j = 1+ i ; j < 4; j++ ) {
            printf("%s vs %s : \n", camp[i].squadra, camp[j].squadra);
            scanf("%d", &x);
            scanf("%d", &y);
            }
      }
    ma non è proprio lo stesso. io vorrei che dopo il primo scanf mi legga il trattino e poi l'altra scanf..come posso fare?

  2. #2
    scanf("%d - %d", &x, &y) ;
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Originariamente inviato da MItaly
    scanf("%d - %d", &x, &y) ;
    avevo già provato in questo modo..ma non va e non capisco il perchè!

  4. #4
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da sizeof
    avevo già provato in questo modo..ma non va e non capisco il perchè!
    Strano, quel codice va bene. Posta il resto del codice, magari hai commesso errori in qualche altra parte.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Eccolo
    codice:
    
    #include <stdio.h>
    #include <stdlib.h>
    
     struct campionato {
        char squadra[10];
        int giocate;
        int vinte;
        int perse;
        int pareggiate;
    }camp[4];
    
    int main()
    {
    
        int i, j;
        int x, y;
    
        for ( i = 0; i < 4; i++ ) {
        printf("Inserisci il nome squadra %d : ", i+1);
        scanf("%s", &camp[i].squadra);
        }
    
        printf("INSERISCI RISULTATI\n\n");
        for ( i = 0; i < 4; i++ ) {
            for ( j = 1 + i; j < 4; j++ ) {
                printf("%s vs %s : \n", camp[i].squadra, camp[j].squadra);
                scanf("%d - %d", &x, &y);
                printf("\n");
    
    
              
            }
        }
    
    
    
    
    
        return 0;
    }

  6. #6
    Originariamente inviato da sizeof
    non va
    Come si dice sempre: "non va" non vuol dire niente; che problemi dà?
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    L'ingresso non mi permette di farlo in questo modo JUVE vs INTER : 3 - 3 ma dopo il primo scanf devo premere invio per inserire il secondo

  8. #8
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da sizeof
    L'ingresso non mi permette di farlo in questo modo JUVE vs INTER : 3 - 3 ma dopo il primo scanf devo premere invio per inserire il secondo
    Ho provato il tuo codice e a me funziona, sei sicuro che inserisci bene il risultato? Se vuoi inserire il risultato "3 - 3" devi scriverlo proprio così..

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Ecco alla fine ho fatto ristampare il risultato di ciscuna partita ( anche se la cosa non mi piace molto )..che ne dite?

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
     struct campionato {
        char squadra[10];
        int giocate;
        int vinte;
        int perse;
        int pareggiate;
        int punteggio;
    }camp[4];
    
    int main()
    {
        char buffer[10];
        int app;
        int i, j;
        int x, y;
    
        for ( i = 0; i < 4; i++ ) {
        printf("Inserisci il nome squadra %d : ", i+1);
        scanf("%s", &camp[i].squadra);
        }
    
        printf("INSERISCI RISULTATI\n\n");
        for ( i = 0; i < 3; i++ ) {
            for ( j = i + 1; j < 4; j++ ) {
                printf("\n\n");
                printf("%s vs %s : \n", camp[i].squadra, camp[j].squadra);
                scanf("%d", &x);
                scanf("%d", &y);
                printf("\n");
                printf("%s vs %s : %d - %d", camp[i].squadra, camp[j].squadra, x, y);
    
                camp[i].giocate = j;
    
                camp[j].giocate = i + 1;
    
                if ( x > y ) {
    
                    camp[i].vinte = camp[i].vinte + 1;
                    camp[i].punteggio = camp[i].punteggio + 3;
                    camp[j].perse = camp[j].perse + 1;
                    camp[j].punteggio = camp[j].punteggio + 0;
    
                } else if ( x < y) {
    
                    camp[i].perse = camp[i].perse + 1;
                    camp[i].punteggio = camp[i].punteggio + 0;
                    camp[j].vinte = camp[j].vinte + 1;
                    camp[j].punteggio = camp[j].punteggio + 3;
    
                } else if ( x = y ) {
    
                    camp[i].pareggiate = camp[i].pareggiate + 1;
                    camp[i].punteggio = camp[i].punteggio + 1;
                    camp[j].pareggiate = camp[j].pareggiate + 1;
                    camp[j].punteggio = camp[j].punteggio + 1;
                }
            }
        }
    
        for ( i = 0; i < 3; i++ ) {
            for ( j = i + 1; j < 4; j++ ) {
                if ( camp[i].punteggio < camp[j].punteggio ) {
    
                    app = camp[i].punteggio;
                    camp[i].punteggio = camp[j].punteggio;
                    camp[j].punteggio = app;
    
                    strcpy(buffer, camp[i].squadra);
                    strcpy(camp[i].squadra, camp[j].squadra);
                    strcpy(camp[j].squadra, buffer);
    
                    app = camp[i].giocate;
                    camp[i].giocate = camp[j].giocate;
                    camp[j].giocate = app;
    
                    app = camp[i].vinte;
                    camp[i].vinte = camp[j].vinte;
                    camp[j].vinte = app;
    
                    app = camp[i].perse;
                    camp[i].perse = camp[j].perse;
                    camp[j].perse = app;
    
                    app = camp[i].pareggiate;
                    camp[i].pareggiate = camp[j].pareggiate;
                    camp[j].pareggiate = app;
    
    
                }
            }
        }
    
        printf("\n\n");
        printf("                         *****CLASSIFICA*****    \n\n");
        printf("%10s%10s%10s%10s%15s%13s", "SQUADRA", "GIOCATE", "VINTE", "PERSE", "PAREGGIATE", "PUNTEGGIO");
        printf("\n");
        for ( i = 0; i < 4; i++ ) {
            printf("%10s%10d%10d%10d%15d%13d", camp[i].squadra, camp[i].giocate, camp[i].vinte, camp[i].perse, camp[i].pareggiate, camp[i].punteggio);
            printf("\n");
        }
    
        return 0;
    }

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 © 2024 vBulletin Solutions, Inc. All rights reserved.