我的语法有些困难。以下程序的目的是打印一个包含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 ;
}
答案 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)
您可以为函数指定数组的起始地址和数组的大小,然后可以使用指针遍历数组。 :)