C++ 函数和指针,用于查找阵列中信号的振幅(最大值)
我的讲师在一个实时代码诊所中创建了这个函数,我正在尝试复制它,然后重复编写多次,直到我学会并理解了代码 目前我不确定在哪里需要定义“findCreatest”函数来运行程序。我的印象是您必须在main()中定义函数。然而,可能还有更多我没有看到的错误。无论如何,如果您能帮助运行此代码并对其进行更详细的解释,我们将不胜感激 谢谢 亚历克斯C++ 函数和指针,用于查找阵列中信号的振幅(最大值),c++,C++,我的讲师在一个实时代码诊所中创建了这个函数,我正在尝试复制它,然后重复编写多次,直到我学会并理解了代码 目前我不确定在哪里需要定义“findCreatest”函数来运行程序。我的印象是您必须在main()中定义函数。然而,可能还有更多我没有看到的错误。无论如何,如果您能帮助运行此代码并对其进行更详细的解释,我们将不胜感激 谢谢 亚历克斯 #包括 #包括 使用名称空间std; int main(int argc,const char*argv[]{ const unsigned int size=
#包括
#包括
使用名称空间std;
int main(int argc,const char*argv[]{
const unsigned int size=15;//为数组创建一个const int
int a_sig[size];//将int赋值给数组大小
对于(int i=0;i
目前,我不确定需要在何处定义“FindCreatest”函数才能运行程序。我的印象是您必须在main()中定义函数
实际上,您不能在main中定义命名函数。您可以在错误声明notallowed
中看到这一点
函数必须在使用前声明。在编译过程中,编译器会注意函数的定义位置。当编译器看到调用了其中一个函数时,它知道应该放什么指令,因为它知道这些函数存在。但是如果函数没有声明(和定义),则编译器无法解释函数调用
您应该在main之前定义函数,或者在main之前声明函数并在main之后定义它
选项:在main之前定义函数
如果要在main之前定义函数,代码可能如下所示
#包括
#包括
#include//rand在这里定义
使用名称空间std;
//定义FindCreatest
//FindCreatest现在可以在程序中稍后使用
int findCreate(int size,int a_sig[])//我在这个签名中添加了一个“[]”
{
int max=-1;
对于(int i=0;i最大值){
max=*(a_sig+i);
}
}
返回最大值;
}
int main(int argc,const char*argv[]{
const unsigned int size=15;//为数组创建一个const int
int a_sig[size];//将int赋值给数组大小
对于(int i=0;我在main()
之前移动函数声明。除非使用lambda函数,否则无法在另一个函数体中定义函数。但是后者的语法不同。非常感谢您的帮助!我使用了您给出的第一个示例并使其正常工作!(现在将其复制一百万次)
#include <iostream>
#include <ctime>
using namespace std;
int main(int argc, const char * argv[]) {
const unsigned int size = 15; // creates a const int for array
int a_sig [size]; // assigns int to array size
for(int i=0; i<size; i++) {
a_sig[i] = rand() % 100;
cout << *(a_sig+i) << endl;
}
int findgreatest (int size, int a_sig) { //"F deceleration not allowed"
int max = -1;
for (int i = 0; i < size; i++) {
if (*(a_sig+i) > max){
max = *(a_sig+i);
}
}
return max;
};
int maximum;
maximum = findgreatest(size, a_sig); //"undeclared identifier"
return 0;
};