Esercizi in C sulle Struct

Facebook Twitter Pinterest Esercizio Realizzare un programma in C con l’uso delle function, che permetta di creare una tabella con record informativo, che contiene per ogni studente, il nome, il cognome, l’età, e la media che ha conseguito a fine anno. L’utente, inizialmente deve inserire i dati e poi attraverso un menù deve consentire le seguenti operazioni: 1- Stampa media dei voti con i dati delgi alunni; 2- Visualizzazione della media di un alunno specifico 3- Visualizzazione dei dati degli alunni con voto massimo e minimo 4- Uscita dal programma Realizzare una codifica in C #include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct{char nome[20];char cognome[20];int age;float media;}alunno;float specifica(alunno n[], int na, alunno z);void maxmin(alunno n[], int na);void inserimento(alunno n[], int na);void visualizza_medie(alunno n[], int na);int main(){alunno elenco[20];int numero_alunni;int scelta;float m;alunno incognito;printf(“PROGRAMMA GESTIONE ALUNNI\n”);printf(“quanti alunni vuoi inserire?\n”);scanf(“%d”, &numero_alunni);inserimento(elenco, numero_alunni);while(1){ do{printf(“\nquale operazione vuoi svolgere?\n”);printf(“2- visualizza medie\n”);printf(“3- stampa media alunno specifico\n”);printf(“4- visualizzazione media massima e minima\n”);printf(“5- uscita dal programma\n”);scanf(“%d”, &scelta);if((scelta<2)||(scelta>5))printf(“scelta non corretta\n”);} while((scelta<2)||(scelta>5));switch(scelta){ case 2:{visualizza_medie(elenco, numero_alunni);break;}case 3:{printf(“inserire il nome e cognome dell’alunno de ricercare\n”);scanf(“%s %s”, incognito.nome, incognito.cognome);incognito.media=specifica(elenco, numero_alunni, incognito);if(incognito.media==-1)printf(“alunno non trovato\n”);else printf(“la media e’ %f”, incognito.media);break;case 4:{ maxmin(elenco, numero_alunni);break;}case 5:printf(” arrivederci e grazie\n”);return 0;} }}}void inserimento(alunno n[], int na){int k;for(k=0;k<na;k++){printf(“inserire il nome e il cognome\n”);scanf(“%s%s”, n[k].nome,n[k].cognome);printf(“inserire l’eta’\n”);scanf(“%d”, &n[k].age);printf(“inserire la media voti\n”);scanf(“%f”, &n[k].media);} }void visualizza_medie(alunno n[], int na){int k;for(k=0;k<na;k++){printf(“NOME:%s\n”, n[k].nome);printf(“COGNOME:%s\n”, n[k].cognome);printf(“ETA’: %d\n”, n[k].age);printf(“MEDIA VOTI:%f”, n[k].media);}}float specifica(alunno n[], int na, alunno z){int flag=0;int k=0;float m=0;while((flag==0)&&(k<na)){if(strcmp(n[k].cognome, z.cognome)==0)if(strcmp(n[k].nome, z.nome)==0){flag=1;m=n[k].media;}k++;}if(flag==0)m=-1;return m;}void maxmin(alunno n[], int na){ //z massimo e y minimoalunno massimo,minimo;massimo.media=0;minimo.media=10;int k=0;for(k=0;k<na;k++){if(n[k].media>massimo.media)massimo=n[k];if(n[k].media<minimo.media)minimo=n[k];printf(“l’alunno con la media piu’ alta e’:\n%s %s %f\n”,massimo.nome, massimo.cognome, massimo.media );printf(“l’alunno con la media piu’ bassa e’: \n%s %s %f\n”, minimo.nome, minimo.cognome, minimo.media);}}

Ciao tu devi essere loggato per visaulzizare il contenuto.