gpt4 book ai didi

c++ - 获取二维数组中数字的平均值、最小值和最大值

转载 作者:行者123 更新时间:2023-11-28 03:37:24 25 4
gpt4 key购买 nike

我在获取二维数组元素的最小值、最大值和平均值时遇到问题。

我有一个包含学生和成绩的二维数组。

我正在用 rand 生成成绩。例如,当我输入 2,2 时,它会打印出来

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

,我的平均函数取第一个平均值而不取其他平均值。

这是我的代码;

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);

}

下面是我如何使用它

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;
}
}

我做错了什么?另外我怎样才能得到每个数组的最小值、最大值?

最佳答案

我强烈建议使用容器来完成这项任务。例如,您可以执行以下操作

typedef std::vector<float> grades;
std::vector<grades> student_grades;

//populate

for(const grades& gr : student_grades) {
float min, max, avg;
std::tie(min, max)=std::minmax(gr.begin(), gr.end());
avg=std::accumulate(gr.begin(), gr.end(), 0.0) / gr.size());
std::cout << "Min" << min << " Max: " << max << " Avg: " << avg << std::endl;
}

http://en.cppreference.com/w/cpp/algorithm/minmax

http://en.cppreference.com/w/cpp/algorithm/accumulate

http://en.cppreference.com/w/cpp/utility/tuple/tie

关于c++ - 获取二维数组中数字的平均值、最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10452572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com