好的,所以我环顾四周,我仍然不太明白为什么我会收到这个错误。我的代码包含在下面。我有一些旧的代码工作得很好。然后我决定这样做,这样你就可以在每次打开应用程序时执行多次计算。在修复了其他几个错误之后,这个错误就出现了。在我意识到我需要'围绕y'之后,这个突然出现了。
#include "stdafx.h"
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int nNumberofArgs, char* pszArgs[])
{
int x;
int y;
int result;
char z;
char a = 'y';
char st();
{
cout << ("Do another calculation?: y/n");
cin >> a;
if (a = 'n')
{
system("PAUSE");
return 0;
}
}
while (a = 'y');
{
cout << "Symbol here: " <<endl;
cin >> z;
cout << "Number 1: " <<endl;
cin >> y;
cout << "Number 2: " <<endl;
cin >> x;
if (z == '*')
{
result = x * y;
cout << "Answer:" << result <<endl;
st();
}
else if (z == '/')
{
result = x * y;
cout << "Answer:" << result <<endl;
st();
}
else if (z == '-')
{
result = x / y;
cout << "Answer:" << result <<endl;
st();
}
else if (z == '+')
{
result = x + y;
cout << "Answer:" << result <<endl;
st();
}
else if (z == '%')
{
result = y % x;
cout << "Answer:" << result <<endl;
st();
}
}
}
答案 0 :(得分:1)
char st()
末尾有一个分号。这声明了函数但没有定义它。声明后的代码成为main的一部分,并在您第一次启动时执行。这就是为什么你可能没有注意到它。
您需要将st()
移出main
,因为本地函数定义在C ++中是非法的。
using namespace std;
char st()
{
cout << ("Do another calculation?: y/n");
cin >> a;
if (a = 'n')
{
system("PAUSE");
return 0;
}
}
int main(int nNumberofArgs, char* pszArgs[])
{
int x;
int y;
// ... rest of your code
return 0;
}