Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
#1

Программа выдает 3 ошибки. Одна из них: IntelliSense: выражение должно быть допустимым для изменения левосторонним значением - C++

04.10.2013, 02:08. Просмотров 2186. Ответов 8
Метки нет (Все метки)

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>
#include <locale.h>
 
using namespace std;
 
struct PList
{
    int info;
    PList *prev, *next;
};
 
void Create (PList *&head, PList *&tail)
{
    int x,i,n;
    PList *p;
    p = new PList;
    cin >> x;
    p->info = x;
    head = p;
    head->prev = NULL;
    tail = head;
    cout << "Сколько чисел будите вводить? ";
    cin >> n;
    for (i = 1, i<=n; i++;);
    {
        PList *p;
        cin >> x;
        p->info = x;
        head->next = p;
        p->prev =p;
        head = p;
    }
    head->next = NULL;
}
 
void Progression (PList *tail)
{
    int min,k;
    k = 0;
    min = tail->info;
    while (tail!=NULL)
    {
        if (min <= tail->info)
        {
            cout << (k=k+1);
        }
        min = tail->info;
        tail = tail ->next;
        Progression = k;
    }
}
 
void main()
{
    setlocale(LC_CTYPE, "Russian");
    PList *head,*tail;
    Create (head, tail);
    cout << "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-" << endl << "Длина неубывающей подпоследовательности равна : ";
    Progression (tail);
    cout << "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-" << endl;
}
Вот ошибки на скрине, объясните пожалуйста, как исправить.
0
Миниатюры
Программа выдает 3 ошибки. Одна из них: IntelliSense: выражение должно быть допустимым для изменения левосторонним значением  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 02:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа выдает 3 ошибки. Одна из них: IntelliSense: выражение должно быть допустимым для изменения левосторонним значением (C++):

Выдает ошибки : "выражение должно быть допустимым для изменения левосторонним значением" - C++
В строке 75: fam3.surname_people= fam2.surname_people; выдает ошибки : &quot;выражение должно быть допустимым для изменения левосторонним...

Выражение должно быть допустимым для изменения левосторонним значением - C++
struct ITEM { struct { char N; char A; char S; } NAS; char vers; }; struct LIST {

Выражение должно быть допустимым для изменения левосторонним значением - C++
Вот код: a ^ 2 = a*a; a ^ 4 = a^2 * a^2; a ^ 8 = a^4 * a^4; a ^ 16 = a^8 * a^8; Ошибки находятся тут: a ^ 4 и т.д. Не знаю что...

Выражение должно быть допустимым для изменения левосторонним значением - C++
День добрый просветите пожалуйста что ему не нравится ? #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace...

Выражение должно быть допустимым для изменения левосторонним значением - C++
//Структура пользователя программой struct User { char Login; char Password; }; User Array; //Функция входа в программу...

Ошибка: Выражение должно быть допустимым для изменения левосторонним значением - C++
Всем привет. У меня есть очередь, состоящую из объектов класса classA, которую нужно заполнить из файла при инициализации. Я использую...

8
Kuzia domovenok
1950 / 1803 / 139
Регистрация: 25.03.2012
Сообщений: 6,245
Записей в блоге: 1
04.10.2013, 07:19 #2
Цитата Сообщение от wazler Посмотреть сообщение
Progression = k;
???
0
PetyaVasechkin
117 / 117 / 1
Регистрация: 27.09.2013
Сообщений: 702
04.10.2013, 07:36 #3
Есть такой тип lvalue, например переменная является lvalue типом. Другими словами, в неё можно что то записать.
А такая ошибка может возникать, если попытаться записать туда, куда это в принципе не возможно. например выражение:
1 = 100; 1 - не является lvalue, так как 1 - константа. (в неё низя сохранять).

Просто пример смысла.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
04.10.2013, 08:14 #4
wazler, для возврата значения из функции используйте
C++
1
return значение;
А у Вас какой-то pascal-style.
0
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
04.10.2013, 20:13  [ТС] #5
Я как раз и перевожу из Pascal в С++, от этого так все похоже на стайл паскаля

Добавлено через 1 час 4 минуты
Цитата Сообщение от Tulosba Посмотреть сообщение
wazler, для возврата значения из функции используйте
C++
1
return значение;
А у Вас какой-то pascal-style.
Применил, что вы сказали, еще поменял условие, вот условие на паскале
Pascal
1
if min <= tail^.info then k:=k+1;
то что на с++
C++
1
 if (min <= tail->info) k=k+1;
правильно? А то перестал работать вывод...программа запускается.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
04.10.2013, 21:19 #6
wazler, похоже на правду. Вместо k=k+1; можно и лучше писать k++;
0
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
06.10.2013, 22:52  [ТС] #7
Цитата Сообщение от Tulosba Посмотреть сообщение
wazler, похоже на правду. Вместо k=k+1; можно и лучше писать k++;
сделал все как Вы сказали, программа продолжает работать но не выводит.
Вот код который на данном этапе:
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
#include <iostream>
#include <locale.h>
 
using namespace std;
 
struct PList
{
    int info;
    PList *prev, *next;
};
 
void Create (PList *&head, PList *&tail)
{
    int x,i;
    PList *p;
    p = new PList;
    cin >> x;
    p->info = x;
    head = p;
    head->prev = NULL;
    tail = head;
    for (i = 1; i<=4; i++)
    {
        p = new PList;
        cin >> x;
        p->info = x;
        head->next = p;
        p->prev = head;
        head = p;
    }
    head->next = NULL;
}
 
void Progression (PList *tail)
{
    int min,k;
    k = 0;
    min = tail->info;
    while (tail!=NULL)
    {
        if (min <= tail->info) k++;
        min = tail->info;
        tail = tail ->next;
        return ;
    }
}
 
void main()
{
    setlocale(LC_CTYPE, "Russian");
    PList *head,*tail;
    Create (head, tail);
    cout << "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-" << endl << "Длина неубывающей подпоследовательности равна : ";
    Progression (tail);
    cout << endl << "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-" << endl;
}
Вот скрин должно вывести 4, так как на ней обрывается возрастание
0
Миниатюры
Программа выдает 3 ошибки. Одна из них: IntelliSense: выражение должно быть допустимым для изменения левосторонним значением  
PetyaVasechkin
117 / 117 / 1
Регистрация: 27.09.2013
Сообщений: 702
07.10.2013, 00:31 #8
Цитата Сообщение от wazler Посмотреть сообщение
похоже на правду. Вместо k=k+1; можно и лучше писать k++;
Лучше писать ++k
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.10.2013, 10:37 #9
Цитата Сообщение от PetyaVasechkin Посмотреть сообщение
Лучше писать ++k
В данном случае не принципиально.

Достоверность не проверял:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int Progression (PList *tail)
{
    int k = 0;
    int min = tail->info;
    while (tail!=NULL)
    {
        if (min <= tail->info) k++;
        min = tail->info;
        tail = tail ->next;
        return min;
    }
}
C++
1
cout << Progression (tail) << endl;
0
07.10.2013, 10:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2013, 10:37
Привет! Вот еще темы с ответами:

Ошибка: Выражение должно быть допустимым для изменения левосторонним значением - C++
class ts_ch { int zn; public: ts_ch() { zn=0; } ts_ch(int a) {

Ошибка: выражение должно быть допустимым для изменения левосторонним значением - C++
Делаю односвязный список. #include &quot;stdafx.h&quot; #include &quot;locale.h&quot; #include &quot;math.h&quot; #include &quot;conio.h&quot; #include &quot;iostream&quot; ...

Перегрузка оператора ().Выражение должно быть допустимым для изменения левосторонним значением - C++
Здравствуйте. Интересует ответ на вопрос: почему если в классе перегружен оператор без амперсанда (в моем случае () ) ,то в мейне при...

"Выражение должно быть допустимым для изменения левосторонним значением" - C++
#include &lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include&lt;fstream&gt; using namespace std; struct knigi { char name; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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