Страницы

Поиск по вопросам

пятница, 7 июня 2019 г.

Неверный возврат ссылки на элемент, в чем проблема?

При вводе, например, десятого элемента и попытке сменить его значение, меняет 3ий элемент, при попытке сменить первый элемент может сменить 4ый, выходит какой-то рандом, в чем проблема?
int &change(int i); int vals[10];
int main(){
int ch, newval; cout << "Enter your array.." << endl; for(int j = 0;j<10; j++) cin >> vals[j];
cout << "
" <<"Choose element which you want to change.. "; cin >> ch; cout << "Enter the new value for this element.. "; cin >> newval; newval = change(vals[ch-1]); cout << endl; for (int i=0; i<10; i++) cout << vals[i] <<" "; // вывод массива
return 0; }
int &change(int k){
return vals[k]; }


Ответ

Передавайте в функцию индекс элемента, а не значение из массива:
change(ch-1) = newval;

Комментариев нет:

Отправить комментарий