Programma che fa uso dei vettori per fare alcune operazioni sui voti degli alunni:
non va la funzione numero 4 per la ricerca della posizione di un certo valore nel vettore e non va nemmeno il calcolo della media, potete correggere gli errori presenti in questo codice per favore? Passando i vettori per indirizzo alle funzioni codeblocks bloccava la compilazione, cosa comporta il passarli per valore?
codice:#include <iostream> using namespace std; const int max_alunni= 32; int voti[max_alunni]; int i,somma_voti, num_alunni, quanti_sopra_media,cerca_voto,posizione,voto_inserito; float media; //procedura per il caricamento degli elementi del vettore void carica_vettore(int vet[], int n) { int i; for(i=0;i<n;i++) { cout<<"Inserisci voto n: "<<i+1<<" "; cin>>vet[i]; } } //funzione per determinare il valore minimo presente nel vettore int posizione_min(int vet[], int n) { int pos_min=0; for(i=0;i<n;i++) { if(vet[i]<vet[pos_min]) pos_min= i; } return pos_min; } //funzione per determinare il valore massimo presente nel vettore int posizione_max(int vet[], int n) { int pos_max=0; for(i=1;i<n;i++) { if(vet[i]>vet[pos_max]) pos_max= i; } return pos_max; } //funzione per la ricerca di un valore nel vettore int cerca_vettore(int vet[], int n, int cercato)//restituisce il primo voto trovato { int posizione=0; do { if(vet[i]==cercato) posizione= i; i=i+1; }while(i!=n or posizione==0); return posizione; } //funzione per l'ordinamento del vettore mediante algoritmo di scambio semplice(bubble sort) void bubble_sort(int vet[], int n) { int i,j,tmp; for(i=0;i<n;i++) { for(j=0;j<n-1;j++) { if(vet[j]>vet[j+1]) { tmp=vet[j]; vet[j]= vet[j+1]; vet[j+1]= tmp; } } } } //funzione che conta il numero di occorrenze di un determinato valore nel vettore int conta_alunni(int vet[], int n, int voto_cercato) { int i, quanti; for(i=0;i<n;i++) { if(vet[i]==voto_cercato) quanti= quanti+1; } return quanti; } int main() { somma_voti=0; media=0; quanti_sopra_media=0; cout<<"Quanti alunni ci sono?"; cin>>num_alunni; cout<<"Inserisci ora i voti degli alunni: "; //caricamento voti alunni carica_vettore(voti, num_alunni); //voto minimo e massimo cout<<"Il voto piu basso e' " <<voti[posizione_min(voti,num_alunni)]<<" "; cout<<"Quello piu alto e invece: " <<voti[ posizione_max(voti,num_alunni)]; cout<<endl; posizione di inserimento di un voto cout<<"Vuoi sapere in che posizione hai inserito un determinato voto? Inserisci il voto: "; cin>>cerca_voto; posizione= cerca_vettore(voti,num_alunni,cerca_voto); if (posizione>0) cout<<"Voto "<<cerca_voto <<"trovato in posizione "<<posizione; else cout<<"Voto non trovato"; cout<<endl; //media voti for(i=1;i<num_alunni;i++) somma_voti=somma_voti+voti[i]; media= somma_voti/num_alunni; cout<<"La media dei voti degli alunni e': " <<media; cout<<endl; //quanti alunni hanno un voto sopra la media for(i=0;i<num_alunni;i++) if(voti[i]>media) quanti_sopra_media=quanti_sopra_media+1; cout<<"Ci sono " <<quanti_sopra_media<<" voti sopra la media"; //ordinamento voti in ordine crescente cout<<"I voti inseriti in ordine crescente sono i seguenti: "; bubble_sort(voti,num_alunni); for(i=0;i<num_alunni;i++) cout<<" "<<voti[i]; //numero di alunni che hanno preso un certo voto cout<<"Vuoi sapere quanti alunni hanno preso un determinato voto? Inserisci un voto da 1 a 10:"; cin>>voto_inserito; cout<<"Hanno preso il voto: "<<voto_inserito<<" "<<conta_alunni(voti,num_alunni,voto_inserito)<<"alunni"; }

Rispondi quotando

