基本上,每当我在控制台中运行此程序进行测试时,我的Menu()函数都会被调用,当我输入时,它会再次打印整个Menu()函数。请帮我解决这个问题。 附:这是不完整的。
#include <iostream>
#include <windows.h>
using namespace std;
int Menu();
int main()
{
float currMoney = 0;
float giveMoney = 0;
float coke = 8.50;
float fantaG = 9;
float fantaO = 9;
float creamS = 7;
Menu();
int Choice = Menu();
system("cls");
if(Choice == 1)
{
cout<< "Insert R"<< coke << endl;
int pay = 0;
cin>> pay;
float returnA = pay - coke;
if(returnA < 0)
{
returnA = -returnA;
cout<< "you still owe R"<< returnA << "0" << endl;
}
}
}
int Menu()
{
cout<< "[Drink machine v1.0]\n\n"<< endl;
cout<< "[1]Coke -- R8,50"<< endl;
cout<< "[2]Fanta grape -- R9,00" <<endl;
cout<< "[3]Fanta orange -- R9,00"<< endl;
cout<< "[4]Cream Soda -- R7,00"<< endl;
int Choice = 0;
cin>> Choice;
return Choice;
}
答案 0 :(得分:6)
它被调用两次的原因是因为你正在调用它两次!
Menu(); // first time
int Choice = Menu(); // second time
在第一个调用中,您不会捕获返回值 - 所以它只显示菜单,请求输入,然后丢弃结果。
在第二个调用中,您再次显示菜单,请求输入,然后这次捕获结果,并对该结果执行操作。
从中看,您要删除对Menu()
答案 1 :(得分:2)
你 在代码
中两次调用它int main() {
Menu();
int Choice = Menu();
}