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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.96
spruced
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 30
08.06.2013, 11:23     error C2106: '=' : left operand must be l-value выдаёт ошибку на сортировку #1
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 выдаёт ошибку на сортировку
Посмотрите здесь:

C++ Выдаёт ошибку во второй сточке: [BCC32 Error] File1.cpp(40): E2089 Identifier 'addFirst' cannot have a type qualifier
C++ Error C2106 как обойти?
C++ error C2106: =: левый операнд должен быть левосторонним значением
C++ Не могу запустить программку компилятор выдаёт ошибку error LNK2019: ссылка на неразрешенный внешний символ
C++ Error C2106: '=' : left operand must be l-value
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
08.06.2013, 14:05     error C2106: '=' : left operand must be l-value выдаёт ошибку на сортировку #2
Что сделать-то нужно? Отсортировать точки соответственно расстоянию до начала координат?
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 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,163
Завершенные тесты: 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
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 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 выдаёт ошибку на сортировку
Ответ Создать тему
Опции темы

Текущее время: 23:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru