在main()函数中不打印最大值和最小值

时间:2020-04-29 16:55:52

标签: c++

我正在执行一个代码,以跟踪老虎在1周内吃的食物量,并且正在跟踪3只老虎。

我应该打印平均值,最大值和最小值。每当我运行代码时,它都不会输出最大值或最小值,而只会显示函数中具有的初始化值。我假设int main()完全忽略了我的返回值,但是我不明白为什么会这样。我之前做过很多功能,每次都执行相同的代码,并在main中调用它

这是代码:

   int main(){
 cout << "Enter whether you want to find minimum for tiger 1 2 or 3. (Please 
 only enter 0, 1 or 2): ";

 cin >> temp;

 if (temp < 0) {
     cout << "CAN'T RUN NEGATIVE NUMBERS";
     exit(2);
 }

 least(food, temp, minimum);
 cout << "\n";

  cout << "The Tiger " << temp << " has minimum: " << minimum << " ";

 cout << "\n \n ";
   }



float least(float food[][DAYS], int temp, float min) //loop for days only 
 {


minimum = food[0][0];
//temp has to be less than 3
for (int j = 0; j < DAYS; ++j) {
    if (min<food[temp][j]) {
        min = food[temp][j];
    }
}
cout << min << " ";
return max;

  }


system("PAUSE");
return 0;
}

2 个答案:

答案 0 :(得分:0)

您不使用方法的返回值。替换

Most(food, amb, maximum);

least(food, temp, minimum);

使用

maximum = Most(food, amb, maximum);

minimum = least(food, temp, minimum);

答案 1 :(得分:0)

由于未使用返回值,因此在函数定义中使用max和min参数作为参考变量。此外,至少和大多数功能的比较似乎是错误的。应该是相反的方式。

float least(float food[][DAYS], int temp, float &min) //loop for days only 
 {

min = food[0][0];  //temp has to be les
for (int j = 0; j < DAYS; ++j) {
    if (min>food[temp][j]) {
        min = food[temp][j];
    }
}
cout << min << " ";
return min;

 }



 float Most(float food[][DAYS], int amb, float &max) //loop for days only 
 {


 max = food[0][0];
  //amb has to be less than 3
  for (int j = 0; j < DAYS; ++j) {
    if (max<food[amb][j]) {
        max = food[amb][j];
     }
  }
  cout << max << " ";
  return max;

 }