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:
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;
}
non funziona solo la media, dice:
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!!!