C++ 函数和指针,用于查找阵列中信号的振幅(最大值)

C++ 函数和指针,用于查找阵列中信号的振幅(最大值),c++,C++,我的讲师在一个实时代码诊所中创建了这个函数,我正在尝试复制它,然后重复编写多次,直到我学会并理解了代码 目前我不确定在哪里需要定义“findCreatest”函数来运行程序。我的印象是您必须在main()中定义函数。然而,可能还有更多我没有看到的错误。无论如何,如果您能帮助运行此代码并对其进行更详细的解释,我们将不胜感激 谢谢 亚历克斯 #包括 #包括 使用名称空间std; int main(int argc,const char*argv[]{ const unsigned int size=

我的讲师在一个实时代码诊所中创建了这个函数,我正在尝试复制它,然后重复编写多次,直到我学会并理解了代码

目前我不确定在哪里需要定义“findCreatest”函数来运行程序。我的印象是您必须在main()中定义函数。然而,可能还有更多我没有看到的错误。无论如何,如果您能帮助运行此代码并对其进行更详细的解释,我们将不胜感激

谢谢

亚历克斯

#包括
#包括
使用名称空间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;
};