#include <iostream>
using namespace std;
// prototype functions
void DisplayResult(float MaxOrMin);
float FindMinimum(float Array[5]);
float FindMaximum(float Array[5]);
//Global Variables
float Array[5];
float MaxOrMin = 3;
float FindMin;
float FindMax;
//Main Function
int main()
{
cout << "Please enter 5 numbers: " << endl;
for (int i=0; i<5; i++)
{
cin >> Array[i]; // input for array
}
cout << "Please enter '0' for minimum or '9' for maximum:" << endl;
cin >> MaxOrMin; // input 0 or 9 for min or max
//Calling Functions
FindMinimum(Array);
FindMaximum(Array);
DisplayResult(MaxOrMin);
return 0;
}
//Function to find Minimum
float FindMinimum(float Array[5])
{
float FindMin = Array[0];
for (int y=1;y<5;y++)
{
if(Array[y] < FindMin)
FindMin = Array[y];
}
return FindMin;
}
//Function to find Maximum
float FindMaximum(float Array[5])
{
float FindMax = Array[0];
for (int x=1;x<5;x++)
{
if(Array[x] > FindMax)
FindMax = Array[x];
}
return FindMax;
}
这最后一部分是我的if,否则if,else funtion:
//Function to display minimum or maximum result
void DisplayResult(float MaxOrMin)
{
if (MaxOrMin == 0)
cout << "Minimum is: " << FindMin << endl;
else if (MaxOrMin == 9)
cout << "Maximum is: " << FindMax << endl;
else
cout << "Invalid Input" << endl;
}
我的项目是创建一个程序,使用函数在5浮点数组上获取用户输入。然后找到最大值和最小值,并显示用户要求的任何一个。
这是我的问题所在。对于max(输入9)和min(输入0),我得到&#34; 0&#34;。但是,任何其他输入都会正确返回我的&#34;无效输入&#34;消息。
我没有在日食上得到任何错误,警告或错误。我的教授告诉我,我的问题可能在于我的void函数用于显示结果。我希望有人能指出我在正确的方向。
为我的格式道歉和/或此问题对于此网站来说太基本了。
答案 0 :(得分:2)
您误解了本地和全局变量的工作原理。你的Find *函数会影响本地人的全局,因此他们似乎没有做任何事情。
答案 1 :(得分:0)
问题是,您的FindMinimum()
(与FindMaximum()
相同)功能会计算局部变量中的最小值(最大值)并将其返回给您main()
don&#39 ; t接收正确的变量
所以计算出的值就丢失了。
我的意思是......而不是
FindMinimum(Array);
FindMaximum(Array);
你应该写
FindMin = FindMinimum(Array);
FindMax = FindMaximum(Array);