Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.96
spruced
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 37
#1

error C2106: '=' : left operand must be l-value выдаёт ошибку на сортировку - C++

08.06.2013, 11:23. Просмотров 3066. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
 
   setlocale(LC_ALL, "Russian");
 int N,i,Buf;
cout << "введите размерность массивов N";
cin >> N;
int *x = new int[N];
for (i = 0; i < N; i++)
{
cout << "Введите  " << i <<"-ую координату x: ";
cin >> x[i];
}
int *y = new int[N];
for (i = 0; i < N; i++)
{
cout << "Введите  " << i <<"-ую координату y: ";
cin >> y[i];
}
double z;
for (i = 0; i < N; i++)
{
z=sqrt(double( x[i] * x[i] +  y[i] * y[i]));
cout << z <<" ";
}
for (i = 0; i < N; i++)
if (sqrt(double( x[i] * x[i] +  y[i] * y[i]))>sqrt(double( x[i+1] * x[i+1] +  y[i+1] * y[i+1])) )
{Buf=sqrt(double( x[i] * x[i] +  y[i] * y[i]));
sqrt(double( x[i] * x[i] +  y[i] * y[i]))=sqrt(double( x[i+1] * x[i+1] +  y[i+1] * y[i+1])) ;
sqrt(double( x[i+1] * x[i+1] +  y[i+1] * y[i+1]))=Buf;}
             
}
программа еще пока не закончена
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2013, 11:23     error C2106: '=' : left operand must be l-value выдаёт ошибку на сортировку
Посмотрите здесь:
Error C2106: '=' : left operand must be l-value C++
C++ Error C2106: '=' : left operand must be l-value
C++ [Error] lvalue required as left operand of assignment
C++ Error: lvalue required as left operand of assignment|
C++ Error: lvalue required as left operand of assignment. Не могу разобраться где ошибка
Компилятор выдаёт ошибку error C2059: syntax error : '}' C++
Error C2106 или error C2440 C++
Lvalue required as left operand of assignment C++
Исправить ошибку "error C2679: binary '*' : no operator found which takes a right-hand operand of type" C++
Ошибка: lvalue required as left operand of assignment C++
Компилятор выдаёт ошибку error C4996: 'strcpy': This function or variable may be unsafe C++
C++ Error C2106 как обойти?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,908
08.06.2013, 14:05     error C2106: '=' : left operand must be l-value выдаёт ошибку на сортировку #2
Что сделать-то нужно? Отсортировать точки соответственно расстоянию до начала координат?
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
08.06.2013, 14:09     error C2106: '=' : left operand must be l-value выдаёт ошибку на сортировку #3
строка 34
Цитата Сообщение от spruced Посмотреть сообщение
sqrt(double( x[i] * x[i] + *y[i] * y[i]))=sqrt(double( x[i+1] * x[i+1] + *y[i+1] * y[i+1])) ;
что это за бред?
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
08.06.2013, 14:10     error C2106: '=' : left operand must be l-value выдаёт ошибку на сортировку #4
C++
1
2
sqrt(double( x[i] * x[i] +  y[i] * y[i])) = sqrt(double( x[i+1] * x[i+1] +  y[i+1] * y[i+1])) ;
sqrt(double( x[i+1] * x[i+1] +  y[i+1] * y[i+1]))=Buf;
присваиваешь функции корня значение - вот тебе и ошибки
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
08.06.2013, 14:16     error C2106: '=' : left operand must be l-value выдаёт ошибку на сортировку #5
Цитата Сообщение от spruced Посмотреть сообщение
Buf=sqrt(double( x[i] * x[i] + *y[i] * y[i]));
sqrt(double( x[i] * x[i] + *y[i] * y[i]))=sqrt(double( x[i+1] * x[i+1] + *y[i+1] * y[i+1])) ;
sqrt(double( x[i+1] * x[i+1] + *y[i+1] * y[i+1]))=Buf;}
бред!
надо менять только элементы массива
C++
1
2
3
4
5
6
Buf=x[i];
x[i]=x[i+1];
x[i+1]=Buf;
Buf=y[i];
y[i]=y[i+1];
y[i+1]=Buf;
Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double* z=new double[N];
for (i = 0; i < N; i++)
{
z[i]=sqrt(double( x[i] * x[i] +  y[i] * y[i]));
cout << z[i] <<" ";
}
bool sorted=false;
while(!sorted)
  for (i = 0, sorted=true; i < N; i++)
    if (z[i]>z[i+1] )
    {
      Buf=sqrt(double( x[i] * x[i] +  y[i] * y[i]));
    sqrt(double( x[i] * x[i] +  y[i] * y[i]))=sqrt(double( x[i+1] * x[i+1] +  y[i+1] * y[i+1])) ;
    sqrt(double( x[i+1] * x[i+1] +  y[i+1] * y[i+1]))=Buf;
    Buf=z[i];
    z[i]=z[i+1];
    z[i+1]=Buf;
    sorted=false;
  }
}
Yandex
Объявления
08.06.2013, 14:16     error C2106: '=' : left operand must be l-value выдаёт ошибку на сортировку
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru