我正在执行一个代码,以跟踪老虎在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;
}
答案 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;
}