Возведение в степень переменной со значением, полученным из массива

Имеется массив mas[200], в который записаны некоторые числа.

Задача: Присвоить переменной double x значение из определенной ячейки массива и подставить в формулу для получения значения y:

for (int n = 0; n < 200; n++)
{   
    x = mas[n];
    (pow(x, 2) - 25)*(-1.0) = y;
    
}

Компилятор ругается на pow сразу двумя ошибками:

  • Е0137 Выражение должно быть допустимым для изменения левосторонним значением
  • С2106 := левый операнд должен быть допустимым значением

Замена pow(x, 2) на неграмотное x*x только меняет код первой ошибки


Ответы (1 шт):

Автор решения: nyekitka

Так а зачем вы пишете присваивание таким образом:

(pow(x, 2) - 25)*(-1.0) = y;

Вы таким образом пытаетесь присвоить значению слева значение справа, а значение слева является так называемым rvalue (проще говоря, в него нельзя присваивать, его можно только присваивать). Ваша проблема решается элементарной перестановкой:

y = (pow(x, 2) - 25)*(-1.0);
→ Ссылка