我希望有一个名为“userPrompt”的函数,并要求用户为名为“choose”的整数输入一个值,以便之后我可以使用switch语句。
但它没有用,它说:“选择”未宣布。
我想它首先启动main函数,并且在其中第一个命令将初始化userPrompt函数。那么感谢userPrompt我会有一个选择值,以便切换工作。
这个代码有什么问题?
我如何使用嵌套函数?(我希望它被称为)
我的代码订单错了吗?
任何帮助将不胜感激。
userPrompt(){
int choose;
cout << " Please Choose An Option : " << endl;
cout << " Type 1 to Add new grades : " << endl;
cout << " Type 2 to Calculate the average grades : " << endl;
cout << " Type 3 to Calculate the total grades : " << endl;
cout << " Type 4 to Exit : " << endl;
cin >> choose;
}
int main()
{
userPrompt();
switch(choose){
case 1
getGrade();
userPrompt();
break;
case 2
int average;
getGrade();
average = total/counter;
cout << average;
break;
case 3
getGrade();
cout << total;
break;
case 4
cout << "Thanks for Trying" << endl;
return 0;
system("pause");
break;
default
cout << "Please Choose A Valid Option ! : " << endl;
validOption();
}
}
答案 0 :(得分:1)
C ++使用&#34;范围&#34;哪种转化为&#34;可见性&#34;变量。 &#34;选择&#34;你的userPrompt()函数的变量只有&#34;可见&#34; (在触及范围内)userPrompt()函数的范围内。
因此您可以将userPrompt()函数声明为
int userPrompt() // Returns the user choice
{
... // your existing code here
return choose;
}
然后在main()中你会做类似的事情:
int main()
{
int choice = userPrompt();
switch(choice)
...
答案 1 :(得分:0)
您忘记将colon
放入case
,还需要return choose
。
case 1:
试试这个:
int userPrompt(){
int choose;
cout << " Please Choose An Option : " << endl;
cout << " Type 1 to Add new grades : " << endl;
cout << " Type 2 to Calculate the average grades : " << endl;
cout << " Type 3 to Calculate the total grades : " << endl;
cout << " Type 4 to Exit : " << endl;
cin >> choose;
return choose;
}
int main()
{
int choose = userPrompt();
switch(choose){
case 1:
getGrade();
userPrompt();
break;
case 2:
int average;
getGrade();
average = total/counter;
cout << average;
break;
case 3:
getGrade();
cout << total;
break;
case 4:
cout << "Thanks for Trying" << endl;
return 0;
system("pause");
break;
default:
cout << "Please Choose A Valid Option ! : " << endl;
validOption();
}
}
答案 2 :(得分:0)
将代码更改为:
int userPrompt(){ //--> changed into a function returning the choice
int choose;
cout << " Please Choose An Option : " << endl;
cout << " Type 1 to Add new grades : " << endl;
cout << " Type 2 to Calculate the average grades : " << endl;
cout << " Type 3 to Calculate the total grades : " << endl;
cout << " Type 4 to Exit : " << endl;
cin >> choose;
return choose;
}
int main()
{
//--> declare choose in main and assign a value using the function call
int choose = userPrompt();
switch(choose){
case 1:
getGrade();
userPrompt();
break;
case 2:
int average;
getGrade();
average = total/counter;
cout << average;
break;
case 3:
getGrade();
cout << total;
break;
case 4:
cout << "Thanks for Trying" << endl;
return 0;
system("pause");
break;
default
cout << "Please Choose A Valid Option ! : " << endl;
validOption();
}
}
答案 3 :(得分:0)
简单的错误。将冒号放在case 1:
这样的案例中
`首先初始化选择然后尝试。
int choose = o;
答案 4 :(得分:0)
在C ++中,每个函数都有一个返回类型。这意味着它将返回一些东西或返回void(即,什么都不返回)。在你的程序中userPrompt
没有返回类型既不是void也不是任何其他返回类型,因此这部分是程序中的第一个错误。
下一个错误是,在开关语句中的每个案例标签后,该标签后面必须跟冒号':'