Привет, я новичок в C++ может кто-нибудь, пожалуйста, скажите мне, как я могу исправить ошибку в моем коде при нахождении минимальных и максимальных значений, пожалуйста.
Массив 3х5. 3 обезьяны едят 5 дней в неделю. Пользователь должен ввести количество пищи, которую каждая обезьяна съела в день. Код должен вычислять среднее количество пищи, съеденной обезьянами, наибольшее количество пищи, съеденной обезьяной, и наименьшее количество. Я получил среднюю сумму работы, но я застрял на мине и Максе. Пожалуйста помочь. Спасибо.
вот этот код:
#include <iostream> using namespace std; const int ROWS = 3; const int COLS = 5; void getDATA( int array[][COLS], int); double getAVG(int array[][COLS], int); int getSUM(int array[][COLS], int); int x, y; int main() { int monkeys[ROWS][COLS]; int mon1 = 0, mon2 = 1, mon3 = 2, mon1total, mon2total, mon3total, min, max; getDATA(monkeys, ROWS); mon1total = getSUM(monkeys, mon1); mon2total = getSUM(monkeys, mon2); mon3total = getSUM(monkeys, mon3); max = monkeys[0][0]; min = monkeys[0][0]; for (int x = 0; x < COLS; x++) { for (int y = 0; y < COLS; y++) { if (monkeys[x][y] > max) max = monkeys[x][y]; if (monkeys[x][y] < min) min = monkeys[x][y]; } } cout<<"The average daily food by the monkeys was "<<getAVG(monkeys, ROWS)<<endl; cout<<"The least amount of food eaten by the monkeys was "<<min<<endl; cout<<"The most amount of food eaten by the monkeys was "<<max<<endl; } void getDATA(int monkeys[][COLS], int ROWS) { for(int x = 0; x < ROWS; x++) { cout<<"Monkey "<<(x + 1)<< " \n"; for(int y = 0; y < COLS; y++) { cout<<"Day "<<(y + 1)<<endl; cin>> monkeys[x][y]; while(monkeys[x][y]< 0) { cout<<"Error please enter a positive number"<<endl; cin>>monkeys [x][y]; } } cout<<endl; } } int getSUM(int monkeys[][COLS], int monkeyNUM) { int total = 0; for(int x =0; x < monkeyNUM; x ++) { for (int y = 0; y< COLS; y++) total += monkeys[x][y]; } return total; } double getAVG(int monkeys[][COLS], int ROWS) { double total = 0; for(int y = 0; y < COLS; y++) { for (int x = 0; x < ROWS; x++) total += monkeys[x][y]; } return (total/(COLS)); }
Что я уже пробовал:
Я попытался поместить петлю в другое место, но в итоге получил много ошибок. Я попытался использовать функцию, но застрял на полпути.
CHill60
Что вы подразумеваете под словом "застрял" - опишите свою проблему и/или ошибки, которые вы получаете
Briansolive
Я не знаю, как вызвать эту функцию и как это сделать. Я получаю правильное значение для среднего значения но для большинства и наименее я получаю огромные выходные числа