Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2020
    Messaggi
    1

    [C] Stampare la media dei voti di studenti in vettore letto da input

    salve ragazzi vi chiedo gentilmente di aiutarmi a risolvere questo programma in c
    Si assuma presente in memoria un vettore contenente le informazioni relative alle verbalizzazioni di un esame.
    Il vettore contiene le coppie nome-voto. Ad esempio, il contenuto del vettore potrebbe essere il seguente:
    (gianni 27) (marco 28) (luigi 20) (giovanni 25) (sergio 24) (luisa 29)


    Realizzare lo pseudocodice e il codice di un programma in C che riceve in input dall’utente il vettore e stampi la media dei voti ottenuti dagli studenti
    ed il nome e il voto dello studente col voto piu’ alto. Se piu’ studenti condividono il voto piu’ alto li si devono stampare tutti.Fare almeno 3 funzioni .
    La media la stampa mentre il voto dello studente piu alto me lo da sbagliato.
    e il nome dello studente con il voto piu alto non me lo calcola proprio.

    //Si assuma presente in memoria un vettore contenente le informazioni relative alle verbalizzazioni di un esame.
    //Il vettore contiene le coppie nome-voto. Ad esempio, il contenuto del vettore potrebbe essere il seguente:
    //(gianni 27) (marco 28) (luigi 20) (giovanni 25) (sergio 24) (luisa 29)


    //Realizzare lo pseudocodice e il codice di un programma in C che riceve in input dall’utente il vettore e stampi la media dei voti ottenuti dagli studenti
    //ed il nome e il voto dello studente col voto piu’ alto. Se piu’ studenti condividono il voto piu’ alto li si devono stampare tutti
    codice:
    #include<stdio.h>
    #include<string.h>
    #define dim_pers 6      //dimensione del numero di studenti
    #define dim_stringa 12  //dimensione delle stringhe
    typedef struct{
        char nome[dim_stringa];
        int voto;
    }studente;
    
    
    char nome_voto_studente_piu_alto(studente persona[]);
    float media(studente persona[]);
    int voto_piu_alto( studente persona[]);
    int main(){
    int i;
     studente persona[dim_pers];
     float mediam;
     int v_piu_alto;
     char n_piu_alto;
    
    
          i=0;
        while(i<dim_pers){
        printf("inserisci nome:\n");
        scanf("%s",&persona[i].nome );
        printf("inserisci voto:\n");
        scanf("%d", &persona[i].voto);
        i++;
        }
    
    
    mediam=media(persona);
    
    
    v_piu_alto=voto_piu_alto(persona);
    
    
    n_piu_alto=nome_voto_studente_piu_alto(persona);
    system("pause");
    return 0;
    }
    
    
    
    
    float media(studente persona[]){
    int i;
    float media;
    int somma;
    
    
    media=0;
    somma=0;
    i=0;
        while(i<dim_pers){
        somma=somma+persona[i].voto;
        media=somma/6;
        i++;
        }
        printf("la media tra i voti degli studenti è:%f\n",media);
    return media;
    }
    
    
    
    
    int voto_piu_alto(studente persona[]){
    int i;
    int max;
    int indice;
    
    
        i=0;
        max=0;
        while(i<dim_pers){
            if(max<persona[i].voto){
            indice=0;
            max=persona[i].voto;
            indice=i;
            }
            i++;
    
    
        }
        printf("il voto piu alto tra gli studenti è:%d\n",indice);
    return indice;
    
    
    }
    
    
    char nome_voto_studente_piu_alto(studente persona[]){
    int i;
    char nome_max;
    char indice_max;
        i=0;
        while(i<dim_pers){
    
    
            if(nome_max!=persona[i].nome){
            nome_max=persona[i].nome;
            indice_max=i;
            }
    
    
        i++;
        }
        printf("il  dello studente con il voto piu alto é:%c",indice_max);
    return indice_max;
    }


    mi dite cosa non va bene oltre all'ultima funziona che non so proprio come farla partire?
    praticamente il codice mi calcola la media però non riesco a risolvere le altre 2 funzioni rimaste.
    quando vado a compilare la funzione con il voto piu alto tra gli studenti me la stampa sbagliata
    mentre la funzione con il nome dello studente con il voto piu alto l'ho sbagliata sicuramente tutta e sto cercando di capire come farla.
    Ultima modifica di dome98; 24-01-2020 a 14:33 Motivo: Aggiunti i tag CODE

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