Indicazione novizio in c

di il
14 risposte

Indicazione novizio in c

Salve ragazzi. In università devo preparare un esame che prevede il linguaggio c. Inserendo un array di record, come faccio a trovare il massimo in una categoria? Mi spiego meglio, come faccio a puntare ad una sezione del record per confrontare tutti i valori? Uso il ciclo for ma non capisco come puntare i vari elementi.
Grazie a chi mi aiuterà

14 Risposte

  • Re: Indicazione novizio in c

    Che intendi con record? Una struttura? In memoria? In un file? Quale struttura?
  • Re: Indicazione novizio in c

    Per esempio:

    typedef struct
    {
    int voto;
    char cognome[20];
    } studente_t stud;

    voglio trovare il massimo voto tra i vari studenti che ho memorizzato.
  • Re: Indicazione novizio in c

    Stud ha spazio per un solo studente
  • Re: Indicazione novizio in c

    Si ho sbagliato scusa...
    typedef struct
    {
    char nome[20];
    char cognome[20];
    int voto;
    } studente_t;

    void inserisci_dettagli (studente_t stud);

    int main()
    {
    studente_t studente[MAX];
    int n,i;
    printf ("inserire il numero massimo degli studenti");
    scanf ("%d", &n);
    for (i=0; i<n; ++i)
    {
    printf ("inserisci dettagli");
    studente=inserisci_dettagli ();
    }
    system("pause");
    return=0;
    }
    studente_t inserisci_dettagli()
    {
    studente_t stud;
    printf ("inscerisci il nome");
    scanf ("%s", stud.nome);
    printf ("inserisci il cognome");
    scanf ("%s", stud.cognome);
    printf ("inserisci il voto");
    scanf ("%d", &stud.voto);
    return(stud);
    }

    questo è il mio programma, adesso vorrei trovare il massimo tra i vari voti, che faccio?
  • Re: Indicazione novizio in c

    Imposta una variabile max a zero e con un ciclo for confrontala con il voto di ogni studente. Se è il caso assegni a max il voto dello studente esaminato.

    Ma scusa, dopo che hai scritto quel codice (?) ti perdi in una cosa molto più semplice ...?
  • Re: Indicazione novizio in c

    Si so di dover fare un for ma non so come puntare i vari voti
  • Re: Indicazione novizio in c

    Beh, praticamente l'hai scritto nel codice ... (o non l'hai scritto tu?)

    studente.voto
  • Re: Indicazione novizio in c

    Non è stud.voto?
  • Re: Indicazione novizio in c

    Tu stesso hai scritto

    studente_t studente[MAX];

    quindi da dove verrebbe stud?
  • Re: Indicazione novizio in c

    Si ho una gran confusione in testa, la spiegazione è stata molto lacunosa e sto cercando di rimediare. Ora scrivo cosi?

    massimo_corrente=studente[0].voto;
    for (i=1; i<n; ++i)
    if studente.voto > massimo_corrente;
    massimo_corrente=studente.voto;
    }
    printf ("il valore massimo è %d", &massimo_corrente);
  • Re: Indicazione novizio in c

    Va quasi bene ... alla fine della if devi togliere quel ; altrimenti non funzionerà ...

    E la variabile la chiamerei solamente

    massimo
  • Re: Indicazione novizio in c

    Ok grazie mille!
  • Re: Indicazione novizio in c

    Ora vorrei ordinare gli studenti in ordine alfabetico. Prendo il primo cognome e poi?
  • Re: Indicazione novizio in c

    Questo è un altro problema e devi aprire un altro thread usando un titolo opportuno e non generico.
Devi accedere o registrarti per scrivere nel forum
14 risposte