Компиляция массива C ++ - PullRequest
0 голосов
/ 01 мая 2020

Я получаю 3 ошибки компиляции, которые говорят: «Определение функции не разрешено». Я не уверен, как это исправить. Я продолжаю получать его после int main и после void функций. Пожалуйста, помогите!

Это код:

#include <iostream>
#include <iomanip>

using namespace std;

// Function prototypes
int populateIntegerArray(int *arrayPtr, int arraySize);
void displayIntegerArray(int *arrayPtr, int arraySize);
int findMaximumInteger(int *arrayPtr, int arraySize);

int populateIntegerArray(int *arrayPtr,int arraySize)
{
   for(int i=0;i<arraySize;i++)
   {
       cout<<"Enter value for array element "<<i<<":";
       cin>>arrayPtr[i];//reading values
   }

void displayIntegerArray(int *arrayPtr,int arraySize)
{
   for(int i=0;i<arraySize;i++)
   cout<<&arrayPtr[i]<<": arrayPtr["<<i<<"] = "<<setw(15)<<arrayPtr[i]<<endl;
}

void findMaximumInteger(int *arrayPtr,int arraySize)
{
   int maximum = arrayPtr[0];
   for(int i=0;i<arraySize;i++)
   {
       if(maximum<arrayPtr[i])max=arrayPtr[i];
   }
   cout<<"Maximum integer in array is: "<<max<<endl;
}

int main()
{
   int n;

   //reading array size
   cout<<"Enter desired array size:";
   cin>>n;
   int *a = new int[n];

   cout<<"arrayPtr = "<<a<<endl;
   populateIntegerArray(a,n);
   displayIntegerArray(a,n);
   findMaximumInteger(a,n);
   cout<<"DELETING array at arrayPtr = "<<a<<endl;
   delete a;
   return 0;
}

1 Ответ

2 голосов
/ 01 мая 2020

Во-первых, вам не хватает последних } после определения populateIntegerArray и до displayIntegerArray:

int populateIntegerArray(int *arrayPtr,int arraySize)
{
   for(int i=0;i<arraySize;i++)
   {
       cout<<"Enter value for array element "<<i<<":";
       cin>>arrayPtr[i];//reading values
   }

void displayIntegerArray(int *arrayPtr,int arraySize)

Затем у вас есть следующий прототип:

int findMaximumInteger(int *arrayPtr, int arraySize);

Но вы определяете фактическую функцию как возвращающую void (вместо этого должно быть int):

void findMaximumInteger(int *arrayPtr,int arraySize)
{

Тогда в вашей функции findMaximumInteger вы не определяете max переменная в любом месте.

Функции populateIntegerArray и findMaximumInteger объявлены как возвращающие int, но на самом деле не возвращают значение. Вы должны либо вернуть целое число, либо (если вы намереваетесь просто вывести результат на консоль, не возвращая значение из функции), изменить прототипы функций на возвращение void (не int).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...