ciao!!
Il programma deve essere in grado di calcolare
i punteggi minimi e massimi e la media per ogni studente.
Io ho scritto il codice nel seguente modo:
non funziona solo la media, dice:codice:#include<stdio.h> #define STUDENT 3 #define ESAME 4 /*dichiaro le funzioni*/ int max(const int voti[][ESAME],int alunni,int esame); int min(const int voti[][ESAME],int alunni,int esame); double media(const int voti[],int esame); void stampa(const int voti[][ESAME]); /*FUNZIONE PRINCIPALE*/ int main(void) { int alunni=0,esame=0; const int voti [STUDENT][ESAME]={{77,68,86,73}, {96,87,89,78}, {70,90,86,81}}; /*chiamo la funzione stampa*/ stampa(voti); /*chiamo la funzione media e stampo il risultato*/ printf("la media dei voti e' %lf\n",media(voti,ESAME)); /*chiamo la funzione min e stampo il risultato*/ printf("il voto piu' basso e' %d\n",min(voti,STUDENT,ESAME)); /*chiamo la funzione max e stampo il risultato*/ printf("il voto piu' alto e' %d\n",max(voti,STUDENT,ESAME)); return 0; } /*definisco la funzione stampa array*/ void stampa(const int voti[][ESAME]) { /*dichiaro le variabili*/ int i,j; printf("l'array con i voti dei studenti e'\n"); /*legge il contenuto dell'array e lo stampa in una tabella*/ for(i=0;i<3;i++){ for(j=0;j<4;j++) printf("%d\t",voti[i][j]); printf("\n"); } } /*definisco la funzione*/ int max(const int voto[][ESAME],int alunni,int esame) { /*dichiaro le variabili*/ int max=60; int i,j; /*legge il contenuto dell'array e confronta i voti in modo da stabilire quello più alto*/ for(i=0;i<alunni;i++){ for(j=0;j<esame;j++){ if(voto[i][j]>max){ max=voto[i][j]; } } } return max; } /*definisco la funzione*/ int min(const int voto[][ESAME],int alunni,int esame) { /*dichiaro le variabili*/ int j,k; int min=100; /*legge il contenuto dell'array e confronta i voti in modo da stabilire quello più basso*/ for(k=0;k< alunni;k++){ for(j=0;j<esame;j++){ if(voto[k][j]<min){ min=voto[k][j]; } } } return min; } /*definisco la funzione*/ double media(const int voti[],int esame) { /*dichiaro le variabili*/ int j; double somma=0; /*legge l'array, somma i voti e deve fornire la media*/ for(j=0;j<esame-1;j++) somma+=voti[j]; return somma/esame; }
error C2664: 'media': impossibile convertire il parametro 1 da 'const int [3][4]' a 'const int []'.
l'array originale è voti[studenti][esame] ma alla funzione media devo solo passare i voti, non capisco come fare!!!

Rispondi quotando