该程序应该从用户那里得到两个输入并显示答案。 这些是我得到的错误:
(15):错误C2065:'x':未声明的标识符
(15):错误C2065:'y':未声明的标识符
(16):错误C2448:'writeanswer':函数式初始化器似乎是一个函数定义
(30):错误C3861:'writeanswer':未找到标识符
这是我的代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
int Readnumber()
{
int num;
cin >> num;
return num;
}
void writeanswer(x, y) //THIS IS LINE 15
{ //THIS IS LINE 16
int a;
a = x + y;
cout << "This is the answer: " << a;
}
int main()
{
cout << "Please enter a number: ";
int x = Readnumber();
cout << "Please enter another number: ";
int y = Readnumber();
writeanswer(x, y); //THIS IS LINE 30
system("Pause");
return 0;
}
我认为第30行的错误是导致更多错误的主要问题。我试过谷歌,我似乎无法解决它。
编辑:我以为我曾经尝试过,我花了一整天时间来解决这个问题!感谢所有答案。
答案 0 :(得分:6)
C ++是强静态类型的,不是动态类型的。您必须编写参数类型x
和y
。
正如您在函数体内指定局部变量a
的类型一样,您必须指定输入参数x
和y
的类型:
void writeanswer( int x , int y )
答案 1 :(得分:4)
在writeanswer
的函数声明中,您有
void writeanswer(x, y)
但它应该是
void writeanswer(int x, int y)
编译器不知道代码中的x和y类型。它不能暗示主函数的数据类型,因为它们的范围仅限于声明它们的主函数。
在某些语言中,包括MATLAB和Python,您不需要始终指定数据类型,因为它是根据您尝试将其设置为的值的类型在编译/解释时隐式排序的。 C ++不能像那样工作。 C ++在这方面非常严格,您必须在声明时指定每种数据类型。
答案 2 :(得分:1)
第15行是错误的。你应该按照以下方式编写它:
void writeanswer(int x, int y)