C++ 使用数组作为参数的校准函数

C++ 使用数组作为参数的校准函数,c++,C++,我的语法有点困难。下面程序的目的是打印一个由20个随机数组成的数组,找到数组的最大值,然后打印数组和最大值。我已经有了初始化和创建数组的部分,没有任何问题,但我的问题是find_max函数。在main函数中,我试图计算出调用find_max函数的语法,以便打印结果。如果有人能帮我修改语法,我将不胜感激 #include <cstdlib> #include <iostream> using namespace std; void init_array(int array

我的语法有点困难。下面程序的目的是打印一个由20个随机数组成的数组,找到数组的最大值,然后打印数组和最大值。我已经有了初始化和创建数组的部分,没有任何问题,但我的问题是find_max函数。在main函数中,我试图计算出调用find_max函数的语法,以便打印结果。如果有人能帮我修改语法,我将不胜感激

#include <cstdlib>
#include <iostream>
using
namespace std;

void
init_array(int array[], int size, int range)
{
   for (int index = 0; index < size; index++)
      array[index] = rand() % range;
}

void print_array(int array[], int size)
{
   for (int index = 0; index < size; index++)
      cout << array[index] << " ";
   cout << endl;
}

int find_max (int array[], int size)
{
   int max = array[0];
   for (int index = 0; index < size; index++)
   {
      if (array[index] > max)
         max = array[index];
   }
   return max;
}


int main()
{
   // Declare array of integers
    const int size = 20;
    int array[size] = {0};
    int max = find_max(array,size);


   // Initialize and print array
   init_array(array, size, 100);
   print_array(array, size);
   cout << "The max is:" << max << endl;



   return 0 ;
}
#包括
#包括
使用
名称空间标准;
无效的
init_数组(int数组[],int大小,int范围)
{
对于(int index=0;indexcout对
find_max
的调用需要使用声明的变量,并且在调用
init_array
之后需要使用声明的变量。否则,数组为空

find_max
的调用应如下所示:

int max = find_max(data, DATA_SIZE);
int main()
{
   // Declare array of integers
   const int DATA_SIZE = 20;
   int data[DATA_SIZE] = {0};

   // Initialize and print array
   init_array(data, DATA_SIZE, 100);
   cout<< find_max(data, DATA_SIZE)<< endl;
   print_array(data, DATA_SIZE);

   return 0 ;
}

那么,当以这种方式声明数组时:

int data[DATA_SIZE] = {0};
所以其中的20个元素都等于零。 您的主要功能应该如下所示:

int max = find_max(data, DATA_SIZE);
int main()
{
   // Declare array of integers
   const int DATA_SIZE = 20;
   int data[DATA_SIZE] = {0};

   // Initialize and print array
   init_array(data, DATA_SIZE, 100);
   cout<< find_max(data, DATA_SIZE)<< endl;
   print_array(data, DATA_SIZE);

   return 0 ;
}
intmain()
{
//声明整数数组
const int DATA_SIZE=20;
int data[data_SIZE]={0};
//初始化并打印数组
初始化数组(数据,数据大小,100);

cout您可以为函数指定数组的起始地址和数组的大小,然后您可以使用指针遍历数组。

在初始化数组之前,尝试查找max。这不是您想要的。以下操作有效:

   const int DATA_SIZE = 20;
   int data[DATA_SIZE] = {0};

   // Initialize and print array
   init_array(data, DATA_SIZE, 100);
   print_array(data, DATA_SIZE);

   // Find maximum value
   int max = find_max(data, DATA_SIZE);

   cout << "max = " << max << endl;

   return 0;
const int DATA_SIZE=20;
int data[data_SIZE]={0};
//初始化并打印数组
初始化数组(数据,数据大小,100);
打印数组(数据、数据大小);
//求最大值
int max=查找最大值(数据、数据大小);

这是有道理的,通过实现这些更改,函数就不起作用了。我不需要使用find_max函数中相同的声明变量吗?我做了您建议的更改,现在程序工作了,但我的函数现在不起作用。它只打印max等于零。不知道代码如何处理更改,但是可能尝试在main:
srand(time(NULL))的开头添加rand
@Lumberjacked216:您正在询问您刚刚编写的用于打印最大值的代码,但您尚未提供该代码。我们不是心灵感应。我们看不到该代码。可能我的问题在于函数。我有一个函数可以找到数组的最大值,然后从中返回一个结果。我的问题是我需要我将把find_max函数的结果输入到主函数中,并从那里打印它。我不担心打印它的语法,我的问题是将函数的结果调用到主函数中。好的,我已经更新了对主函数的更改。完成了!感谢您的帮助!