这是我的代码。我尝试修复它并且我总是获得相同的错误:在'int'之前预期的主表达式。
第47,55,63,80,86行。
我之前已经尝试过这个小程序,并且它有效。它没有标记该错误。
` #include
using namespace std;
int add (int a, int b)
{
int r;
r=a+b;
return (r);
}
int ssub (int a, int b)
{
int r;
r=a-b;
return (r);
}
int mult(int a, int b)
{
int r;
r=a*b;
return (r);
}
int menu(int a, int b){
int r;
char x;
cout <<"What do you want to do: \na.Adding \n s. Substract \n m. Multiply. \n. e. Exit"<<endl;
cin>>x;
switch (x){
case 'a':
cout << "Give a value for a"<<endl;
cin>>a;
cout <<"Give a value for b"<<endl;
cin>>b;
add (int a, int b); //aquí y en otras líneas me sale: expected primary expression before int.
break;
case 's':
cout << "Give a value for a"<<endl;
cin>>a;
cout <<"Give a value for b"<<endl;
cin>>b;
ssub (int a, int b);
break;
case 'm':
cout << "Give a value for a"<<endl;
cin>>a;
cout <<"Give a value for b"<<endl;
cin>>b;
mult (int a, int b);
break;
case 'e':
x='e';
break;
default:
cout<<"Wrong choice. Run the program again and choose another letter"<<endl;
break;
}
return r;
}
cout<<"The result is " << menu (int a, int b)<<endl;
int main()
{
menu (int a, int b);
return 0;
}
`
答案 0 :(得分:0)
将主要内容更改为:
int main()
{
menu();
return 0;
}
将menu
更改为:
void menu() {
int a;
int b;
// remove int r; and return r; from menu function
// then everything else stays the same
在switch
声明中,更改此内容:
add (int a, int b);
对此:
add(a,b);
在您的函数调用中包含int
的其他每个地方都这样做。
答案 1 :(得分:0)
add (int a, int b);
您不能在此处拥有int
令牌 - 您希望使用现有变量a
和b
的值,而不是声明它们。它们已在功能介绍int menu(int a, int b)
中声明。
你需要:
add(a, b);
答案 2 :(得分:0)
当你调用你的函数时,你应该只使用你传入它的变量名而不在它之前添加它的类型:
...
cout <<"Give a value for b"<<endl;
cin>>b;
add (int a, int b); //aquí y en otras líneas me sale: expected primary expression before int.
break;
...
应该是: ...
cout <<"Give a value for b"<<endl;
cin>>b;
add (a, b); //aquí y en otras líneas me sale: expected primary expression before int.
break;
...
通过在a和b之前添加int关键字,我认为您可能正在重新声明这些变量。