2D配列の要素の最小値、最大値、平均値の取得に問題があります。2D配列の数値の平均値、最小値、最大値の取得
私は学生と成績を含む2D配列を持っています。
私はrandでグレードを生成しています。私はそれが
Courses : 01 02 Average Min Max
ID
01 8 50 29
02 74 59 29
私を出力し、2,2を入力した場合たとえば、私の平均機能は、平均して他の人が平均取るdoesntの最初のものになります。
ここは私のコードです。私は
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;
}
}
それを使用する方法
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);
}
と、ここで私が間違って何をしているのですか?また、配列ごとにどのようにmin、maxを得ることができますか?手始めに
のようにそれを呼び出しますか –
int A [30] [30]; 、申し訳ありません:) –
あなたは 'sum'を使用する前に初期化しておらず、外側ループの最初の反復中に戻ります。データを格納するために 'std :: vector'を使用しない理由と、値を追加するために' std :: accumulate'を使用する理由はありますか? 'min_element'と' max_element'でminとmaxを得ることができます。 –