Obtenir la Moyenne,Min et Max de nombres dans le tableau 2D

J'ai un problème avec l'obtention de la min,max, moyenne de l'un des éléments de tableau 2D.

J'ai un tableau 2D qui contient des Étudiants et des Grades.

Je suis de la génération de la sortes avec rand. Par exemple Quand je rentre de 2,2 elle imprime m'

Courses : 01   02   Average   Min   Max
    ID   
    01     8   50     29
    02    74   59     29

Mon moyen de la fonction prend la première de celles de la moyenne et de ne pas prendre les autres en moyenne.

Voici mon code ;

int A[30][30];

int findAverage(int noOfStudents ,int noOfGrades ){

    float sum,average;




    for (int i = 0 ; i < noOfGrades ; i++) {
        for (int j = 0; j<noOfStudents; j++) {

        sum += A[i][j];

        }
        average = sum / noOfGrades;
       //cout << "   " << format(average);
        sum = 0;
        return format(average);

    }

et voici comment je l'utilise

int main() {
int noOfCourses , noOfStudents;
cin >> noOfCourses >> noOfStudents;
cout << "Courses : " ;
for (int i = 0; i < noOfCourses; i++) {
if (i+1 >= 10) {
cout << i+1 << "   ";
}else{
cout <<"0" << i+1 << "   ";
}
}
cout << "Average   Min   Max";
for(int i=0; i<noOfStudents; i++) {         //This loops on the rows.        
for(int j=0; j<noOfCourses; j++) {     //This loops on the columns
A[i][j] = genGrade(); 
}
}
cout << "\n    ID   " << endl;
for(int i=0; i<noOfStudents; i++) {  //This loops on the rows.
if (i+1 >= 10) {
cout <<"    " << i+1 << "   ";
}else{
cout <<"    0" << i+1 << "   ";
}
//cout <<"    0" << i+1 << "   ";
for(int j=0; j<noOfCourses; j++) {  //This loops on the columns
if (A[i][j] >= 10 && A[i][j] <=99) {
cout <<" " << A[i][j]  << "  ";
}
if(A[i][j] < 10) {
cout <<"  " << A[i][j] << "  ";
}
if (A[i][j] == 100) {
cout << A[i][j] << "  ";
}
}
cout <<"   "<<findAverage(noOfStudents,noOfCourses);
cout << endl;
}
}

Ce que je fais mal ? Aussi, Comment pourrais-je obtenir le min,le max de ce tableau?

  • Qu'est-ce que la déclaration de A?
  • int A[30][30]; , désolé 🙂
  • Vous n'avez pas initialisé sum avant de l'utiliser, et vous retournez au cours de la première itération de la boucle externe. Est-il une raison pour laquelle vous n'utilisez pas std::vector pour stocker les données et std::accumulate pour additionner les valeurs? Vous pouvez obtenir des min et max avec min_element et max_element.
InformationsquelleAutor Yeliz Il | 2012-05-04