Я смотрел на другие темы, похожие на эту, и до сих пор не могу выяснить, что не так с моим кодом. Следующее является функцией в моей программе, чтобы найти среднее (среднее) массивов. Я получаю ошибку в заголовке: ошибка: поиск имени «i» изменен для ISO для «scoping». Следующее с примечанием: если вы используете «-fpermissize», g ++ примет ваш код.
double GetMean ( double Array[], int ArrayLength )
{
int Sum, Mean;
for ( int i = 0; i < ArrayLength; i++ )
{
Sum = Sum + Array[i];
}
Mean = Sum / Array[i];
return Mean;
}
Идеи и объяснения были бы прекрасны, так что я могу понять, какого черта я делаю неправильно: /
for (int i = 0; i < ArrayLength; i++)
Когда вы определяете i
в for
заголовок, как это, его область находится внутри for
петля. Вы не можете использовать его за пределами for
петля как Mean = Sum / Array[i];
в вашем коде.
Измените это на:
int i;
for (i = 0; i < ArrayLength; i++)
Также обратите внимание, что вы никогда не инициализируете Sum
,
Это утверждение
Среднее = Сумма / Массив [i];
не имеет смысла.
Что касается ошибки, то вы пытаетесь использовать varaible i в выражении Array [i] в приведенном выше заявлении вне его области действия. Он определяется только внутри цикла.
Также вы забыли инициализировать переменную Sum, и я думаю, что она должна иметь тип double.
Функция может выглядеть так
double GetMean( const double Array[], int ArrayLength )
{
double Sum = 0.0;
for ( int i = 0; i < ArrayLength; i++ )
{
Sum = Sum + Array[i];
}
return ArrayLength == 0 ? 0.0 : Sum / ArrayLength;
}