Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24

Discussione: [C]Struct città

  1. #11
    Ho quasi finito il codice, ma volevo chiedervi una cosa:

    per trovare la temperatura minima e quella massima è corretto cercare la posizione della minima e della massima e poi stampare i dati che si trovano in quella posizione (come ho fatto nelle 2 funzioni)?

    codice:
    #include<stdio.h>
    typedef struct
    {
            char codice[10];
            char nome[10];
            char provincia[3];
            float temperatura;
            float pioggia;
    }t_citta;
      
    //Main
    
    void ncity(t_citta[],int);
    void mint(t_citta[], int);  
    void maxt(t_citta[], int);    
    int main()
    {
        t_citta city[50];
        int i, max, min;
        for (i=0; i<50; i++)
            ncity(city,i);
        mint(city, min);
        maxt(city, max);
            
    
        system("pause");
        return 0;
    }
    //Implementazione della funzione per l'inserimento dati
    void ncity(t_citta city[], int n)
    {
         printf("\nInserisci il codice della citta\': ");
         scanf("%s", &city[n].codice);
         printf("\nInserisci il nome della citta\': ");
         scanf("%s", &city[n].nome);
         printf("\nInserisci la provincia della citta\': ");
         scanf("%s", &city[n].provincia);
         printf("\nInserisci la temperatura della citta\': ");
         scanf("%f", &city[n].temperatura);
         printf("\nInserisci i millimetri di pioggia della citta\': ");
         scanf("%f", &city[n].pioggia);
    }
    //Implementazione per la funzione che calcola la temperatura minima
    void mint(t_citta city[], int min)
    {
         int i=0;
         float tempmin=99999;
         for(i=0; i<50; i++)
         {
             if (i==0)
                  min=0;
             else
             {
                 if(city[i].temperatura<tempmin)
                   min=city[i].temperatura;//posizione in cui si trova il minimo
             }
         }
    }
    //Implementazione per la funzione che calcola la temperatura massima
    void maxt(t_citta city[], int max)
    {
         int i=0;
         float tempmax=-99999;
         for(i=0; i<50; i++)
         {
             if (i==0)
                  max=0;
             else
             {
                 if(city[i].temperatura<tempmax)
                   max=city[i].temperatura;//posizione in cui si trova il minimo
             }
         }
    }
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    1) Nelle due funzioni non hai stampato nulla ...

    2) Hai usato tempmin e tempmax inutilmente

    3) Hai passato il valore min e max per valore alle funzioni e non capisco perché
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #13
    quello che voglio fare io è questo:
    codice:
    #include<stdio.h>
    typedef struct
    {
            char codice[10];
            char nome[10];
            char provincia[3];
            float temperatura;
            float pioggia;
    }t_citta;
      
    //Main
    
    void ncity(t_citta[],int);
    void mint(t_citta[], int);  
    void maxt(t_citta[], int);    
    int main()
    {
        t_citta city[50];
        int i, max, min;
        for (i=0; i<3; i++)
            ncity(city,i);
        mint(city, min);
        maxt(city, max);
        printf("\nDati della citta\' con la temperatura minore:");
        printf("\nCodice: %s", city[min].codice); 
        printf("\nNome: %s", city[min].nome); 
        printf("\nProvincia: %s", city[min].provincia); 
        printf("\nTemperatura: %f", city[min].temperatura);   
        printf("\nPioggia: %fmm\n", city[min].pioggia);
        printf("\nDati della citta\' con la temperatura maggiore:");
        printf("\nCodice: %s", city[max].codice); 
        printf("\nNome: %s", city[max].nome); 
        printf("\nProvincia: %s", city[max].provincia); 
        printf("\nTemperatura: %f", city[max].temperatura);   
        printf("\nPioggia: %fmm\n\n", city[max].pioggia); 
        system("pause");
        return 0;
    }
    //Implementazione della funzione per l'inserimento dati
    void ncity(t_citta city[], int n)
    {
         printf("\nInserisci il codice della citta\': ");
         scanf("%s", &city[n].codice);
         printf("\nInserisci il nome della citta\': ");
         scanf("%s", &city[n].nome);
         printf("\nInserisci la provincia della citta\': ");
         scanf("%s", &city[n].provincia);
         printf("\nInserisci la temperatura della citta\': ");
         scanf("%f", &city[n].temperatura);
         printf("\nInserisci i millimetri di pioggia della citta\': ");
         scanf("%f", &city[n].pioggia);
    }
    //Implementazione per la funzione che calcola la temperatura minima
    void mint(t_citta city[], int min)
    {
         int i=0;
         float tempmin=99999;
         for(i=0; i<3; i++)
         {
             if (i==0)
                  min=0;
             else
             {
                 if(city[i].temperatura<tempmin)
                   min=city[i].temperatura;//posizione in cui si trova il minimo
             }
         }
    }
    //Implementazione per la funzione che calcola la temperatura massima
    void maxt(t_citta city[], int max)
    {
         int i=0;
         float tempmax=-99999;
         for(i=0; i<3; i++)
         {
             if (i==0)
                  max=0;
             else
             {
                 if(city[i].temperatura<tempmax)
                   max=city[i].temperatura;//posizione in cui si trova il minimo
             }
         }
    }
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  4. #14
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da 21Edoardo96
    quello che voglio fare io è questo:
    Quindi la funzione mint deve restituire un intero che rappresenta l'indice in cui hai trovato il minimo. Questa quindi sarà del tipo

    void mint(t_citta[]);

    e dovrà restituire il valore dell'indice in cui si trova il minimo (quindi l'indice del for, la variabile i in cui è stato trovato il minimo).

    Nel main potrai quindi scrivere

    min = mint(city);

    e seguire con il tuo codice ...

    P.S. Scusami se te lo dico ma dopo tanto tempo che fai esercizi e li proponi nel forum, queste sono difficoltà elementari di uso delle funzioni, cicli e così via ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #15
    scusami, ma se devo fagli restituire qualcosa non devo cambiare la funzione da void a float per poi usare il return?
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  6. #16
    Ho sistemato il codice in questo modo:
    codice:
    #include<stdio.h>
    typedef struct
    {
            char codice[10];
            char nome[10];
            char provincia[3];
            float temperatura;
            float pioggia;
    }t_citta;
      
    //Main
    
    void ncity(t_citta[],int);
    float mint(t_citta[]);  
    float maxt(t_citta[]);      
    int main()
    {
        t_citta city[50];
        int i, max, min;
        for (i=0; i<3; i++)
            ncity(city,i);
        min=mint(city);
        max=maxt(city);
        printf("\nDati della citta\' con la temperatura minore:");
        printf("\nCodice: %s", city[min].codice); 
        printf("\nNome: %s", city[min].nome); 
        printf("\nProvincia: %s", city[min].provincia); 
        printf("\nTemperatura: %f", city[min].temperatura);   
        printf("\nPioggia: %fmm\n", city[min].pioggia);
        printf("\nDati della citta\' con la temperatura maggiore:");
        printf("\nCodice: %s", city[max].codice); 
        printf("\nNome: %s", city[max].nome); 
        printf("\nProvincia: %s", city[max].provincia); 
        printf("\nTemperatura: %f", city[max].temperatura);   
        printf("\nPioggia: %fmm\n\n", city[max].pioggia);
        system("pause");
        return 0;
    }
    //Implementazione della funzione per l'inserimento dati
    void ncity(t_citta city[], int n)
    {
         printf("\nInserisci il codice della citta\': ");
         scanf("%s", &city[n].codice);
         printf("\nInserisci il nome della citta\': ");
         scanf("%s", &city[n].nome);
         printf("\nInserisci la provincia della citta\': ");
         scanf("%s", &city[n].provincia);
         printf("\nInserisci la temperatura della citta\': ");
         scanf("%f", &city[n].temperatura);
         printf("\nInserisci i millimetri di pioggia della citta\': ");
         scanf("%f", &city[n].pioggia);
    }
    //Implementazione per la funzione che calcola la temperatura minima
    float mint(t_citta city[]) 
    {
         int i=0, min=0;
         float tempmin=99999;
         for(i=0; i<3; i++)
         {
             if(city[i].temperatura<tempmin)
                   min=city[i].temperatura;//posizione in cui si trova il minimo
         }
         return min; 
    }
    //Implementazione per la funzione che calcola la temperatura massima
    float maxt(t_citta city[]) 
    {
         int i=0, max=0;
         float tempmax=-99999;
         for(i=0; i<3; i++)
         {
             if(city[i].temperatura<tempmax)
                   max=city[i].temperatura;//posizione in cui si trova il minimo
         }
         return max; 
    }
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  7. #17
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non ci capiamo ...

    Se devi restituire l'indice dell'elemento del vettore deve essere un int, se devi restituire la temperatura deve essere un float.

    Controlla il codice della funzione ... fai un return max che è un int e non è l'indice !
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #18
    Ok,
    ho sistemato
    codice:
    #include<stdio.h>
    typedef struct
    {
            char codice[10];
            char nome[10];
            char provincia[3];
            float temperatura;
            float pioggia;
    }t_citta;
      
    //Main
    
    void ncity(t_citta[],int);
    int mint(t_citta[]);  
    int maxt(t_citta[]);    
    int main()
    {
        t_citta city[50];
        int i, max, min;
        for (i=0; i<3; i++)
            ncity(city,i);
        min=mint(city);
        max=maxt(city);
        printf("\nDati della citta\' con la temperatura minore:");
        printf("\nCodice: %s", city[min].codice); 
        printf("\nNome: %s", city[min].nome); 
        printf("\nProvincia: %s", city[min].provincia); 
        printf("\nTemperatura: %f", city[min].temperatura);   
        printf("\nPioggia: %fmm\n", city[min].pioggia);
        printf("\nDati della citta\' con la temperatura maggiore:");
        printf("\nCodice: %s", city[max].codice); 
        printf("\nNome: %s", city[max].nome); 
        printf("\nProvincia: %s", city[max].provincia); 
        printf("\nTemperatura: %f", city[max].temperatura);   
        printf("\nPioggia: %fmm\n\n", city[max].pioggia);
        system("pause");
        return 0;
    }
    //Implementazione della funzione per l'inserimento dati
    void ncity(t_citta city[], int n)
    {
         printf("\nInserisci il codice della citta\': ");
         scanf("%s", &city[n].codice);
         printf("\nInserisci il nome della citta\': ");
         scanf("%s", &city[n].nome);
         printf("\nInserisci la provincia della citta\': ");
         scanf("%s", &city[n].provincia);
         printf("\nInserisci la temperatura della citta\': ");
         scanf("%f", &city[n].temperatura);
         printf("\nInserisci i millimetri di pioggia della citta\': ");
         scanf("%f", &city[n].pioggia);
    }
    //Implementazione per la funzione che calcola la temperatura minima
    int mint(t_citta city[])
    {
         int i=0, min=0;
         float tempmin=99999;
         for(i=0; i<3; i++)
         {
             if(city[i].temperatura<tempmin)
                   min=i;//posizione in cui si trova il minimo
         }
         return min;
    }
    //Implementazione per la funzione che calcola la temperatura massima
    int maxt(t_citta city[])
    {
         int i=0, max=0;
         float tempmax=-99999;
         for(i=0; i<3; i++)
         {
             if(city[i].temperatura<tempmax)
                   max=i;//posizione in cui si trova il minimo
         }
         return max;
    }
    P.S. Sto usando il 3 nel for per inserire solo 3 serie di dati
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  9. #19
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Se non apporti queste modifiche non troverai mai il minimo corretto ... (e similmente per il massimo).

    codice:
    int mint(t_citta city[])
    {
         int i=0, min=0;
         float tempmin=99999;
         for(i=0; i<3; i++)
         {
             if(city[i].temperatura<tempmin)
             {
                   tempmin=city[i].temperatura;
                   min=i;//posizione in cui si trova il minimo
             }
         }
         return min;
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #20
    Grazie,
    ora però il programma riesce a trovare la città con la temperatura minima ma, non trova quello con la temperatura massima.
    codice:
    #include<stdio.h>
    typedef struct
    {
            char codice[10];
            char nome[10];
            char provincia[3];
            float temperatura;
            float pioggia;
    }t_citta;
      
    //Main
    
    void ncity(t_citta[],int);
    int mint(t_citta[]);  
    int maxt(t_citta[]);    
    int main()
    {
        t_citta city[50];
        int i, max, min;
        for (i=0; i<3; i++)
            ncity(city,i);
        min=mint(city);
        max=maxt(city);
        printf("\nDati della citta\' con la temperatura minore:");
        printf("\nCodice: %s", city[min].codice); 
        printf("\nNome: %s", city[min].nome); 
        printf("\nProvincia: %s", city[min].provincia); 
        printf("\nTemperatura: %4.1f", city[min].temperatura);   
        printf("\nPioggia: %4.1fmm\n", city[min].pioggia);
        printf("\nDati della citta\' con la temperatura maggiore:");
        printf("\nCodice: %s", city[max].codice); 
        printf("\nNome: %s", city[max].nome); 
        printf("\nProvincia: %s", city[max].provincia); 
        printf("\nTemperatura: %4.1f", city[max].temperatura);   
        printf("\nPioggia: %4.1fmm\n\n", city[max].pioggia);
        system("pause");
        return 0;
    }
    //Implementazione della funzione per l'inserimento dati
    void ncity(t_citta city[], int n)
    {
         printf("\nInserisci il codice della citta\': ");
         scanf("%s", &city[n].codice);
         printf("\nInserisci il nome della citta\': ");
         scanf("%s", &city[n].nome);
         printf("\nInserisci la provincia della citta\': ");
         scanf("%s", &city[n].provincia);
         printf("\nInserisci la temperatura della citta\': ");
         scanf("%f", &city[n].temperatura);
         printf("\nInserisci i millimetri di pioggia della citta\': ");
         scanf("%f", &city[n].pioggia);
    }
    //Implementazione per la funzione che calcola la temperatura minima
    int mint(t_citta city[])
    {
         int i=0, min=0;
         float tempmin=99999;
         for(i=0; i<3; i++)
         {
             if(city[i].temperatura<tempmin)
             {
                   tempmin=city[i].temperatura;
                   min=i;//posizione in cui si trova il minimo
             }
         }
         return min;
    }
    //Implementazione per la funzione che calcola la temperatura massima
    int maxt(t_citta city[])
    {
         int i=0, max=0;
         float tempmax=-99999;
         for(i=0; i<3; i++)
         {
             if(city[i].temperatura<tempmax)
             {
                   tempmax=city[i].temperatura;
                   max=i;//posizione in cui si trova il massimo
             }
         }
         return max;
    }
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

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