Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Caling function that uses array as parameter

Tags:

c++

I'm having some difficulty with my syntax. The purpose of the below program is to print an array of 20 random numbers, find the max of the array and then print the array and the max. I've got the sections to initialize and create the array without any problem, but my issue is with the find_max function. In the main function, I'm trying to work out the syntax to call my find_max function there so I can print the results. If anyone can help to fix my syntax, I'd really appreciate it.

#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 ;
}
like image 801
TeachYourDog Avatar asked Dec 11 '25 23:12

TeachYourDog


2 Answers

Your call of find_max needs to use your declared variables and that after you call init_array. Otherwise your array is empty.

The call to find_max should look like this:

int max = find_max(data, DATA_SIZE);
like image 90
SAlex Avatar answered Dec 13 '25 18:12

SAlex


You try to find max before the array is initialized. That is not what you want. The following works:

   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;
like image 28
Rudy Velthuis Avatar answered Dec 13 '25 18:12

Rudy Velthuis



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!