Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [C] somma minuti per giorno

    perchè in questo codice non mi stampa il riepilogo dei minuti per ogni giorno'?? grazie mille a tutti
    giorno attività minuti
    1 lezione 90
    4 ricevimento 60
    3 progetto_a 180
    3 lezione 180
    3 correzione_esami 160
    1 lezione 90


    codice:
    for(t=1; t<9; t++)
        {
            conta=0;
            while(fgets(str,MAX,fp)!=NULL)
            {
                sscanf(str,"%d %s %d",&giorno,attivita,&min);
    
                if(giorno==t)
                    conta+=min; 
            }
    printf(" giorno %d somma %d\n",t,conta);
    
    
        }
        fclose(fp);
        return 0;
    
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma perché la while dentro il for?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    perchè per ogni giorno legge le righe e se trova quel giorno somma min. capito??

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Io ho capito che per 9 volte rilegge tutto il file, ma dopo la prima volta il file è già stato letto e non può essere nuovamente letto se non sposti il puntatore all'inizio ...

    E' sbagliato il criterio con cui opera il programma ... tu devi ottenere tante somme (una per ogni t) o una sola somma?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    tante somme per ogni giorno.. es giorno 1 somma 180 \n giorno 3 somma x...\n giorno 4 somma y...\n oppure così
    codice:
    while(fgets(str,MAX,fp)!=NULL)
            {
                sscanf(str,"%d %s %d",&giorno,attivita,&min);
                vett[giorno-1]+=min;
    
                printf(" giorno %d somma %d\n",giorno,vett);
    
            }
    memorizzando le somme in un vett

    MI SONO CORRETTO CON LA VARIABILE. SCUSA

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Così leggi il file una sola volta, senza il for ...

    Ma d cosa è ? Non usi la variabile giorno ?

    E ovviamente il vettore dovrà essere dimensionato con un numero di elementi adeguato al massimo giorno che puoi leggere dal file e dovrà essere azzerato.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    codice:
    vett[giorno]=0;
            while(fgets(str,MAX,fp)!=NULL)
            {
                sscanf(str,"%d %s %d",&giorno,attivita,&min);
                vett[giorno-1]+=min;
    
    
    
            }
            for(t=0;t<5;t++)
    printf(" giorno %d somma %d\n",t,vett);
    
        fclose(fp);
        return 0;
    
    }
    perchè nemmeno cosi mi riesce ?dove sbaglio?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    dove sbaglio
    Questo

    vett[giorno]=0;

    non azzera tutto il vettore ...

    E in questa

    printf(" giorno %d somma %d\n",t,vett);

    devi indicare l'indice del vettore per visualizzare il suo contenuto ... non va bene vett ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Questo

    vett[giorno]=0;

    non azzera tutto il vettore ...

    E in questa

    printf(" giorno %d somma %d\n",t,vett);
    allora va bene vett[giorno-1] e per l indice non parte da zero con t?? riesci a modificarmi correttamente il codice? sto letteralmente impazzendo!

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da jonnyforever
    riesci a modificarmi correttamente il codice? sto letteralmente impazzendo!
    Devi azzerare il vettore nella dichiarazione ... quanti giorni sono quelli massimi previsti ?

    Se sono 31, si scrive

    codice:
    int vett[31] = {0};
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.