Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在二维数组中查找最大和最小数字无效_C++_Arrays_C++17 - Fatal编程技术网

C++ 在二维数组中查找最大和最小数字无效

C++ 在二维数组中查找最大和最小数字无效,c++,arrays,c++17,C++,Arrays,C++17,所以我一直在寻找解决方案,但什么都没有。此外,大多数程序工作正常,只是在计算最大数和最小数时,它显示了错误的日期、食物量和错误的monkeyNum 下面是一个错误的例子: 虽然平均数是对的。最大值和最小值是完全错误的。第二只猴子在第四天没有吃3磅,这也不是该猴子的最低量,也不是整个猴子家族的最低量。本例中的最低金额应为0.01,但不是。 猴子3的最大值是对的,但这不是2D数组中的最大值,最大值应该是98,猴子2天2 下面是代码中可能出错的部分: double minu_Food(double

所以我一直在寻找解决方案,但什么都没有。此外,大多数程序工作正常,只是在计算最大数和最小数时,它显示了错误的日期、食物量和错误的monkeyNum

下面是一个错误的例子:

虽然平均数是对的。最大值和最小值是完全错误的。第二只猴子在第四天没有吃3磅,这也不是该猴子的最低量,也不是整个猴子家族的最低量。本例中的最低金额应为0.01,但不是。 猴子3的最大值是对的,但这不是2D数组中的最大值,最大值应该是98,猴子2天2

下面是代码中可能出错的部分:

double minu_Food(double MINf[][DAYS],int monkey,int&subscriptD,int&subscriptM)//计算猴子消耗最少的食物量
{
int row,col;
双min{};
用于(行=0;行最大值)
{
max=MAXf[行][col];
下标d=col;
下标m=行;
}
}
}
返回最大值;
}
以下是全部代码:

#包括
使用名称空间std;
//声明全局变量
常数整数天=5;//柱
常数int MONKEY=3;//排
//原型函数
无效日平均值(双倍[][天],整数);
双份食物(双份[]天],整数,整数和整数&);
双倍最高食物(双倍[]天],整数,整数和整数&);
int main()
{
double Monkey_Consument[Monkey][DAYS];//用于保存用户输入的数据的2D数组。
double-leastF,mostF;//在2D数组中保持最低和最高值
int Subscript_Day=0,//保存消费日
下标\u Monkey=0;//保存消耗的猴子
DayAvg(猴子消费量,猴子);
leastF=MIN_Food(Monkey_Consumption,Monkey,Subscript_Day,Subscript_Monkey);//调用函数计算消耗的最少食物量。

cout您正在将
max
重置为此循环中2D数组的第一个元素:

for (row = 0; row < monkey; row++)
{
    max = MAXf[0][0];  // why for every row?
    // ...
for(行=0;行
如果这样做,您将丢失前几行的
max
信息。将其从循环中去掉,您应该会没事的

您还需要对
min
函数执行相同的操作


此外,我建议从这些函数中返回一对
来告诉您最小或最大元素的位置。这样可以避免向这些函数传递两个参数。

您正在将
max
重置为该循环中2D数组的第一个元素:

for (row = 0; row < monkey; row++)
{
    max = MAXf[0][0];  // why for every row?
    // ...
for(行=0;行
如果这样做,您将丢失前几行的
max
信息。将其从循环中去掉,您应该会没事的

您还需要对
min
函数执行相同的操作

此外,我建议从这些函数返回一对
来告诉您min或max元素的位置。这样可以避免向这些函数传递2个参数