Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
3 / 3 / 0
Регистрация: 04.12.2011
Сообщений: 119
1

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

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

Author24 — интернет-сервис помощи студентам
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;
}
Вот ошибки на скрине, объясните пожалуйста, как исправить.
Миниатюры
Программа выдает 3 ошибки. Одна из них: IntelliSense: выражение должно быть допустимым для изменения левосторонним значением  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2013, 02:08
Ответы с готовыми решениями:

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

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

Выражение должно быть допустимым для изменения левосторонним значением
Получаю ошибку в переменной х в if (0 &lt; x &amp;&amp; x &lt; 100) { if ( x == 1 || x == 21 || x == 31 || x...

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

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

Просто пример смысла.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
04.10.2013, 08:14 4
wazler, для возврата значения из функции используйте
C++
1
return значение;
А у Вас какой-то pascal-style.
0
3 / 3 / 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
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
04.10.2013, 21:19 6
wazler, похоже на правду. Вместо k=k+1; можно и лучше писать k++;
0
3 / 3 / 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, так как на ней обрывается возрастание
Миниатюры
Программа выдает 3 ошибки. Одна из них: IntelliSense: выражение должно быть допустимым для изменения левосторонним значением  
0
117 / 117 / 0
Регистрация: 27.09.2013
Сообщений: 710
07.10.2013, 00:31 8
Цитата Сообщение от wazler Посмотреть сообщение
похоже на правду. Вместо k=k+1; можно и лучше писать k++;
Лучше писать ++k
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2013, 10:37
Помогаю со студенческими работами здесь

Выражение должно быть допустимым для изменения левосторонним значением
Есть структура: struct Airport_Pass { int Distance; char Departur; char Destination; };...

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

Выражение должно быть допустимым для изменения левосторонним значением
Писал программу для вывода массива в виде спирали, но при обработке условий движения спирали выдало...

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

Выражение должно быть допустимым для изменения левосторонним значением
Выдает ошибку на P = s; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string&gt; using...

Выражение должно быть допустимым для изменения левосторонним значением
Здравствуйте! Подскажите, пожалуйста, в чем заключается ошибка и как ее исправить &quot;Выражение...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru