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

Lvalue required почему высвечивается такая ошибка? - C++

Восстановить пароль Регистрация
 
Sashoock
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 22
29.05.2012, 04:51     Lvalue required почему высвечивается такая ошибка? #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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
   void CutLeft(int x_min,int y_min,int x_max,int y_max, const int max_x_min)
   {
    if(x_min < max_x_min)
    if(x_max <= max_x_min)
    {
        x_min = x_max = max_x_min;
        y_max = y_min;
    }
    else
    {
        y_max = y_min + (y_max - y_min) * (x_max - max_x_min) / (x_max-x_min);
        x_min = max_x_min;
    }
    }
 
void main()
{
int x_min_1, y_min_1, x_max_1, y_max_1;
int x_min_2, y_min_2, x_max_2, y_max_2;
float max_x_min, max_y_min, x__1, y__1, x__2, y__2, t;
float x__cross, y__cross, k1, k2, s;
 
clrscr();
x_min_1=1;
x_max_1=13;
y_min_1=2;
y_max_1=7;
x_min_2=2;
x_max_2=9;
y_min_2=3;
y_max_2=9;
if (x_min_1>x_min_2) { (max_x_min=x_min_1); }
else max_x_min=x_min_2;
if (y_min_1>y_min_2) { (max_y_min=y_min_1); }
else max_y_min=y_min_2;
CutLeft(x_min_1, y_min_1, x_max_1, y_max_1, max_x_min);
CutLeft(y_min_1, x_min_1, y_max_1, x_max_1, max_x_min);
CutLeft(x_min_2, y_min_2, x_max_2, y_max_2, max_x_min);
CutLeft(y_min_2, x_min_2, y_max_2, x_max_2, max_x_min);
x__1=x_max_1-max_x_min;
y__1=y_max_1-max_y_min;
x__2=x_max_2-max_x_min;
y__2=y_max_2-max_y_min;
if (x__1>x__2) { (t=x__1 && x__1=x__2 &&
          x__2=t && t=y__1 &&
          y__1=y__2 && y__2=t); }
 
if (y__1<=y__2) {
 (s=0.5*x__1*y__1);
} else {
(k1=y__1/x__1);
(k2=y__2/x__2);
(x__cross=(y__1-y__2)/(k1-k2));
(y__cross=y__1-k1*x__cross);
(s=0.5*x__cross*(y__2+y__cross)+0.5*(x__1-x__cross)*y__cross);
}
cout<<"Ploshad peresecheniya treugolnikov"<<s<<endl;
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2012, 04:51     Lvalue required почему высвечивается такая ошибка?
Посмотрите здесь:

C++ Lvalue required
Ошибка Lvalue required C++
C++ Ошибка E2277 Lvalue required
C++ Ошибка lvalue required
Взаимодействие ПК с внешним устройством через DLL и ошибка Lvalue required C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
29.05.2012, 05:09     Lvalue required почему высвечивается такая ошибка? #2
Sashoock, какая строка - секрет?
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 341
29.05.2012, 05:14     Lvalue required почему высвечивается такая ошибка? #3
Sashoock, исправил:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
using namespace std;
void CutLeft(int x_min,int y_min,int x_max,int y_max, const int max_x_min){
    if(x_min < max_x_min)
    if(x_max <= max_x_min)
    {
        x_min = x_max = max_x_min;
        y_max = y_min;
    }
    else
    {
        y_max = y_min + (y_max - y_min) * (x_max - max_x_min) / (x_max-x_min);
        x_min = max_x_min;
    }
}
 
int main()
{
    int x_min_1, y_min_1, x_max_1, y_max_1;
    int x_min_2, y_min_2, x_max_2, y_max_2;
    float max_x_min, max_y_min, x__1, y__1, x__2, y__2, t;
    float x__cross, y__cross, k1, k2, s;
 
    x_min_1=1;
    x_max_1=13;
    y_min_1=2;
    y_max_1=7;
    x_min_2=2;
    x_max_2=9;
    y_min_2=3;
    y_max_2=9;
    if   (x_min_1 > x_min_2) max_x_min=x_min_1;
        else max_x_min = x_min_2;
    if    (y_min_1 > y_min_2) max_y_min=y_min_1;
        else max_y_min = y_min_2;
    CutLeft(x_min_1, y_min_1, x_max_1, y_max_1, max_x_min);
    CutLeft(y_min_1, x_min_1, y_max_1, x_max_1, max_x_min);
    CutLeft(x_min_2, y_min_2, x_max_2, y_max_2, max_x_min);
    CutLeft(y_min_2, x_min_2, y_max_2, x_max_2, max_x_min);
    x__1=x_max_1-max_x_min;
    y__1=y_max_1-max_y_min;
    x__2=x_max_2-max_x_min;
    y__2=y_max_2-max_y_min;
    if (x__1 > x__2){
        t = x__1 = x__2 = t = y__1 = y__2;
        y__2 = t;
    }
 
if (y__1<=y__2) {
 (s=0.5*x__1*y__1);
} else {
(k1=y__1/x__1);
(k2=y__2/x__2);
(x__cross=(y__1-y__2)/(k1-k2));
(y__cross=y__1-k1*x__cross);
(s=0.5*x__cross*(y__2+y__cross)+0.5*(x__1-x__cross)*y__cross);
}
cout<<"Ploshad peresecheniya treugolnikov"<<s<<endl;
cin.get();
return 0;
}
Добавлено через 2 минуты
C++
1
2
3
if (x__1>x__2) { (t=x__1 && x__1=x__2 &&
          x__2=t && t=y__1 &&
          y__1=y__2 && y__2=t); }
такое в первый раз вижу.

Добавлено через 49 секунд
alex_x_x, тут и ошибка
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
29.05.2012, 07:00     Lvalue required почему высвечивается такая ошибка? #4
Цитата Сообщение от instagib Посмотреть сообщение
такое в первый раз вижу.
Очевидно, тут имелось ввиду

C++
1
2
3
4
5
if (x__1>x__2) 
{ 
    t=x__1;x__1=x__2;x__2=t;
    t=y__1;y__1=y__2;y__2=t; 
}
Еще один странный момент:
Функция
C++
1
void CutLeft(int x_min,int y_min,int x_max,int y_max, const int max_x_min);
В конечном счете ничего не делает, т.к. не возвращает никаких результатов,
а параметры в нее передаются по значению, а не по ссылке или по адресу.
Похоже автор хотел использовать ссылки:
C++
1
void CutLeft(int& x_min,int& y_min,int& x_max,int& y_max, const int max_x_min
Yandex
Объявления
29.05.2012, 07:00     Lvalue required почему высвечивается такая ошибка?
Ответ Создать тему
Опции темы

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