Не показывает результаты функции в C++
include <iostream>
using namespace std;
double fill_array(double arr[], int size);
void show_array(const double arr2[], int size2);
double reverse_array(double arr3[], int size3);
int main()
{
double arrm[10];
arrm[10] = fill_array(arrm, 10);
show_array(arrm, 10);
reverse_array(arrm, 10);
return 0;
}
double fill_array(double arr[], int size)
{
for(int i = 0; i < size; i++)
{
cout << "Enter: ";
cin >> arr[i];
}
return arr[10];
}
void show_array(const double arr2[], int size2)
{
for (int i = 0; i < size2; i++)
{
cout << arr2[i] << endl;
}
}
double reverse_array(double arr3[], int size3)
{
int temp;
for(int i = 0, j = 9; i < size3, j < size3 ; i++, j--)
{
temp = arr3[i];
arr3[i] = arr3[j];
arr3[j] = temp;
}
cout << arr3[10] << endl;
return arr3[10];
}
Здравствуйте, я написал этот код чтобы она все делал через функции, в функции fillarray она заполняет массив потом этот массив переходит в функции showarray для показа массива, потом этот массив опять передается другому функцию reversearr для того что бы это функция переместила значения в массиве то есть обратная расстановка значений в массиве, и вот проблема в этой функции reversearr и она не показывает результаты, буду очень рад вашей помощи, если будут тупые ошибки то извините я новичок
Ответы (1 шт):
Исходя из вашего кода массив состоит из 10 элементов, в конце функции reverse_array вы сначала выводите, а затем возвращаете 11 по счёту (то есть вы смотрите за границы массива) элемент массива, т.к. в C++, да и в большинстве современных языков первый индекс массива равен 0.
Также у вас неправильно стоит условие в цикле, во первых, он должен быть 2 раза меньше длины, иначе вы поменяете все обратно, и j там совершенно ни к чему.
Если вам нужно выводить в данной функции только последний элемент, то правильно будет вот так.
double reverse_array(double arr3[], int size3)
{
double temp;
for(int i = 0, j = 9; i < size3 / 2; i++, j--)
{
temp = arr3[i];
arr3[i] = arr3[j];
arr3[j] = temp;
}
cout << arr3[size3 - 1] << endl; //либо просто 9
return arr3[size3 - 1];
}
P.S. У вас в вопросе неправильно стоит тэг css, он не имеет никакого отношения к данному вопросу. Это каскадные таблицы стилей, предназначенные для стилизации элементов интерфейса.