使用数组作为参数

时间:2016-07-12 09:34:31

标签: c++

我的语法有些困难。以下程序的目的是打印一个包含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 ;
}

4 个答案:

答案 0 :(得分:2)

find_max的调用需要使用您声明的变量,并且在您致电init_array之后。否则你的数组是空的。

find_max的调用应如下所示:

int max = find_max(data, DATA_SIZE);

答案 1 :(得分:1)

您尝试在数组初始化之前找到max 。那不是你想要的。以下作品:

fputc(out[i]);

答案 2 :(得分:0)

好吧,以这种方式声明数组:

int data[DATA_SIZE] = {0};

所以它中的所有20个元素都等于零。 你的主要功能应如下所示:

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 ;
}

首先通过调用init_array给出20个元素的随机值,然后尝试找到它们的最大值。

答案 3 :(得分:0)

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