C++ C++;函数,按引用传递
我在调用函数时传递参数作为引用时遇到问题。 我们将按照以下说明构建一个程序: 通过编写以下函数的函数定义和函数原型,完成上述程序:C++ C++;函数,按引用传递,c++,function,pass-by-reference,C++,Function,Pass By Reference,我在调用函数时传递参数作为引用时遇到问题。 我们将按照以下说明构建一个程序: 通过编写以下函数的函数定义和函数原型,完成上述程序: 显示菜单 此函数接受num1和num2作为引用传递的参数,并返回一个字符作为输出。该功能显示菜单,并接受以下用户给定的输入: A num1 B num1 num2 Q checkeven 如果参数为偶数,则此函数返回TRUE。否则,函数返回FALSE divisible 如果第一个参数num1可被第二个参数num2整除,则此函数返回TRUE 到目前为止,这是我的代
显示菜单
此函数接受num1和num2作为引用传递的参数,并返回一个字符作为输出。该功能显示菜单,并接受以下用户给定的输入:
A num1
B num1 num2
Q
checkeven
如果参数为偶数,则此函数返回TRUE。否则,函数返回FALSE
divisible
如果第一个参数num1可被第二个参数num2整除,则此函数返回TRUE
到目前为止,这是我的代码,在传递参数时出错
#include <iostream>
using namespace std;
int num1, num2 = 0;
char displaymenu(int num1, int num2);
bool checkeven (int num1);
bool divisible (int num1, int num2);
int main(){
int num1, num2 = 0;
char choice;
do{
choice = displaymenu(num1,num2);
if (choice == 'A'){
if (checkeven(num1))
cout << num1 << " is even." << endl;
else
cout << num1 << " is odd." << endl;
}
else if (choice == 'B'){
if (divisible(num1, num2))
cout << num1 << " is divisible by " << num2 << endl;
else
cout << num1 << " is not divisible by " << num2 << endl;
}
else if (choice == 'Q')
cout << "Bye!" << endl;
else
cout << "Illegal input" << endl;
}while (choice != 'Q');
return 0;
}
char displaymenu(int &num1 = num1, int &num2 = num2){
char choice;
cout << '+' << "______________________________" << '+' <<endl;
cout << '|'<<"Choose an option: " <<" |"<<endl;
cout << '|'<<" A: Check if even |" <<endl;
cout << '|'<<" B: Check if divisible |" <<endl;
cout << '|'<<" Q: Quit |" <<endl;
cout << '+' << "______________________________" << '+' <<endl;
cout << " Reply: ";
cin>> choice>> num1>> num2;
return choice;
}
bool checkeven(int num1){
if (num1 % 2 == 0)
return true;
else
return false;
}
bool divisible(int num1, int num2){
if (num1 % num2 == 0)
return true;
else
return false;
}
#包括
使用名称空间std;
int num1,num2=0;
字符显示菜单(int num1,int num2);
布尔校验偶(整数m1);
布尔可除(int num1,int num2);
int main(){
int num1,num2=0;
字符选择;
做{
选择=显示菜单(num1,num2);
如果(选项=='A'){
if(校验偶数(num1))
cout我不会用一个完整的答案来回答(你可以自由地改进你的问题,以便以后得到更好的答案),但是关于问题的标题,这里有一些提示
你的声明
char displaymenu(int num1, int num2);
你的定义是什么
char displaymenu(int &num1 = num1, int &num2 = num2)
应具有相同的签名。若要传递引用,请将声明更改为
char displaymenu(int &num1, int &num2);
此外,由于通过引用传输值,因此应使用命名空间std;
删除下的全局变量int num1,num2=0;
。不再需要这些变量。然后,通过删除(不工作)来修复显示菜单
函数定义标准值赋值。在那之后,至少编译器应该接受你的代码,只是当你执行它时,它在某些情况下不会真正工作。代码中有这么多错误,我不知道从哪里开始。主函数不应该被更改-顺便问一下,这是一个家庭作业吗?你会得到什么错误?请回答请按照编译器的提示,使用调试器,然后返回特定问题。好的,谢谢,稍候再试