这里的学生。我在以下项目计划中遗漏了一个专栏项目,无法找出放置它的位置,"它"是一个传递参考项目。如果有人感到慷慨,请看看下面我的程序,并给我一个关于我可以调整代码的地方,以便通过引用进行传递。就目前而言,我很难过,而且我没有足够的时间来提出一个全新的问题来编写解决方案。提前谢谢大家!
#include <iostream>
#include <cmath>
using namespace std;
//Global Variable
int height = 0;
//Function Prototypes
int getMale();
int getFemale();
int main()
{
//Local Variable
int ideal = 0;
char sex(' ');
//Sequence Structure
cout << "Welcome to the Hamwi Ideal Body Weight Equation Calculator!" << endl;
cout << "Please enter your height in inches (remember, 1 foot = 12 inches): " << endl;
cin >> height;
cout << "Please enter your biological sex (M or F): " << endl;
cin >> sex;
//Repetition Structure
while (toupper(sex) != 'M' && 'F')
{
cout << "Invalid entry. Please enter your biological sex (M or F): " << endl;
cin >> sex;
} //end while
//Selection Structure
if (toupper(sex) == 'M')
{
int ideal = getMale();
cout << "Thank you. Your ideal body weight is approximately: " << ideal << " pounds." << endl;
cout << "Have a nice day!" << endl;
} //end if
else
{
int ideal = getFemale();
cout << "Thank you. Your ideal body weight is approximately: " << ideal << " pounds." << endl;
cout << "Have a nice day!" << endl;
} //end else
return 0;
} //end of main function
//Program-Defined Function #1 (Male)
int getMale()
{
//Local Variable
int male = 0;
if (height >= 60)
{
male = 106 + ((height - 60) * 6);
return male;
} //end if
else
{
male = 106 - ((60 - height) * 6);
return male;
} //end else
} //end of male function
//Program-Defined Function #2 (Female)
int getFemale()
{
//Local Variable
int female = 0;
if (height >= 60)
{
female = 100 + ((height - 60) * 5);
return female;
} //end if
else
{
female = 100 - ((60 - height) * 5);
return female;
} //end else
} //end of female function
答案 0 :(得分:2)
您在其中一个性别功能中通过引用传递height
。
例如:
int getMale(int &height) {
/* do stuff */
}
然后简单地通过以下方式调用它:
getMale(height);
另外,你需要使用全局变量吗?如果没有,请在height
中将main
作为其他评论者声明的本地变量。全局变量被认为是不好的风格,因为当您在更大的项目上工作时,它们可能会导致难以诊断的问题。
答案 1 :(得分:2)
声明你的两个函数
int getMale ( int& height );
int getFemale ( int& height );
在你的主要部分中,你声明一个可以传递给函数的变量
int main()
{
// Declare here instead of globally
int height = 0;
// Then you can call
int result = getMale(height);
result = getFemale(height);
}
它的行为方式相同。通过引用而不是使用全局变量被认为是更好的做法,所以对你提出这个问题感到很荣幸。
答案 2 :(得分:1)
您可以将变量height
移动到main()
(使其成为本地)并通过引用将其传递给您的所有函数。实际上,我认为这比通过全局变量传递数据更好。
但是在一个真实的项目中,通常最好考虑一下你希望从程序中获得什么样的行为,而不是想要使用什么样的语言功能。
答案 3 :(得分:1)
这个程序没有给你正确的答案,这就是你想通过引用传递的原因吗?或者具体情况是什么? 无论如何,为了让你通过引用传递,然后你从一个全局变量中移除高度并将其置于主体中,然后为你的原型包含一个引用参数,然后当你在main中调用它们传递你的局部变量时。 这是通过引用传递如何工作的示例。
#include<iostream>
using namespace std;
//Prototype
void add(int num1, int num2, int &res);
int main()
{
int res;
add(1, 2, res);
cout<<"I got the value by passing my variable by reference"<<res<<endl;
return 0;
}
void add(int num1, int num2, int &res)
{
res = num1 + num2;
}