Ошибка (активно) E0137 выражение должно быть допустимым для изменения левосторонним значением
Понятия не имею что ему не нравиться, но указывает на эту ошибку в 5-ой строке.
void poz_perv_i_posl_par_0(int* x, int n)
{
int i;
for (i = 0; i < n; i++)
if (x[i] = 0 && x[i+1] = 0)
{
printf("Порядковый номер первого элемента первой пары\n i=% ", i);
break;
}
for (i = n; i = 0; i--)
if (x[i] = 0 && x[i + 1] = 0)
{
printf("Порядковый номер первого элемента последней пары\n i=% ", i);
break;
}
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Приоритеты операторов приводят к тому, что ваше
if (x[i] = 0 && x[i+1] = 0)
рассматривается как
if (x[i] = (0 && x[i+1]) = 0)
т.е. вы, получается, хотите присвоить значение 0 выражению
0 && x[i+1]
Т.е. сделать что-то вроде
5+3 = 2
присвоить 2 сумме 5+3 :)
А вообще, просто типичная ошибка - перепутать оператор присваивания = и сравнения на равенство ==. Явно хотели написать
if (x[i] == 0 && x[i+1] == 0)