При вводе, например, десятого элемента и попытке сменить его значение, меняет 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;
Комментариев нет:
Отправить комментарий