Консультация № 159484
03.02.2009, 13:24
0.00 руб.
0 1 1
Доброе время суток вам Уважаемые эксперты!!
У меня такой вопрос. Я изучаю С++ по книге "С++ для Чайников"
Дошел до 7 главы и там есть программа ArrayDemo. Но при компиляции, компилятор ругается:
"undefined reference to `displayArray(int *, int)'.
Не могли бы вы объяснить почему? Я так понимаю что то с функцией displayArray.
За раннее вам благодарен!

Приложение:
/* ArrayDemo - демонстрирует использование
масивов. Считывает последовательность целых
чисел и отображает их пл порядку */
#include <stdio.h>
#include <iostream.h>

//объявление прототипов функций
int sumArray (int integerArray[], int sizeOfloatArrat);
void displayArray (int integerArray[], int sizeOfloatArray);

int main()
{
//Описываем счетчик цикла
int nAccumulator = 0;
cout << "Эта программа сумирует числа, "
<< "введенные пользователем\n";
cout << "Цикл прирывается тогда, когда "
<< "пользователь вводит "
<< "отрицательное число\n";

// сохраняем числа в массиве
int inputValues[128];
int numberOfValues = 0;
for (; numberOfValues < 128; numberOfValues++)
{
//ввод очередного числа
int integerValue;
cout << "Введите следущее число: ";
cin >> integerValue;

//если оно ортицательное ...
if (integerValue<0)
{
break;
}

//... иначе сохраняем число в массиве
inputValues[numberOfValues] = integerValue;
}
//теперь выводим значение и их сумму
displayArray (inputValues, numberOfValues);
cout << "Сумма введенных чисел равна "
<< sumArray(inputValues, numberOfValues) << endl;
return 0;
}

//displayArray - отображает элемнты массива
// integerArray длниой sizeOfArray
void diplayArray(int integerArray[], int sizeOfArray)
{
cout << "В массиве хранятся"
<< " следущие значения:\n";
for (int i=0; i<sizeOfArray; i++)
{
cout.width(3);
cout << i << ": " << integerArray[i] << endl;
}
cout << endl;
}

// sumArray - возращает сумму элементов целочисленного массива
int sumArray (int integerArray[], int sizeOfArray)
{
int accumulator = 0;
for ( int i=0; i < sizeOfArray; i++)
{
accumulator +=integerArray[i];
}
return accumulator;
}

Обсуждение

Неизвестный
03.02.2009, 13:31
общий
это ответ
Здравствуйте, Нестеренко Антон Юрьевич!

У Вас опечатка в самом названии функции:
//displayArray - отображает элемнты массива
// integerArray длниой sizeOfArray
void diplayArray(int integerArray[], int sizeOfArray)
{
cout << "В массиве хранятся"
...
}

Вы вызываете ф-цию displayArray(int *, int), а есть только diplayArray(int *, int) (без "s"). Это должно решить проблему.

Удачи
Форма ответа