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

Ошибка: "Expression must be modifiable lvalue" - C++

Восстановить пароль Регистрация
 
Tima0406
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 4
30.10.2013, 22:57     Ошибка: "Expression must be modifiable lvalue" #1
Всем привет. Есть одна проблемка. vs2010 выдает ошибку в строке 20 Error: Expression must be modifiable lvalue. Также в строке 51 Error: Expression must have pointer-to-object type. В чем проблема? Помогите, пожалуйста!
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
 
using namespace std;
 
class Bubble
{
public:
    int N;
    int M;
    int *arr;
    int *output;
    Bubble()
    {
        cout<< "Input number of keys: \n";
        cin>> N;
        cout<< "Input number of keys for binary search: \n";
        cin>> M;
        arr = new int[N];
        output = new int[N];
    }
    void input();
    void bubbleSort();
    int binary(int);
    void output();
};
 
void Bubble::input()
{
    cout<< "Input keys: \n";
    int k;
    for (int i = 0; i< N; i++)
    {
        cin>>arr[i];
    }
    cout<< "Initial array: \n";
    for (int i = 0; i< N; i++)
        cout<<arr[i] << "  ";
}
 
void Bubble::bubbleSort()
{
    int max=arr[0];
    
    for (int i=1;i<N;i++) {
        if (arr[i]>max) { 
            max=arr[i];
        }
    }
    
    for (int i=0;i<N;i++) {
        output[i]=0;
    }
    int *temp=new int[max+1];
    for (int i=0;i<max+1;i++) {
        temp[i]=0;
    }
    for (int i=0;i<N;i++){
        temp[arr[i]]=temp[arr[i]]+1;
    }
    for (int i=1;i<max+1;i++) {
        temp[i]=temp[i]+temp[i-1];
    }
    for (int  i=N-1;i>=0;i--) {
        output[temp[arr[i]]-1]=arr[i];
        temp[arr[i]]=temp[arr[i]]-1;
    }
 
}
 
int Bubble::binary(int x)
{
    int low, high, mid;
 
low = 0;
high = N - 1;
while(low <= high)
    {
mid = (low + high) / 2; 
if(x <arr[mid])              
high = mid - 1;
else if(x >arr[mid])
low = mid + 1;
else
return mid;
    }
return -1;
}
 
void Bubble::output()
{
    int k;
    cout<< "\n" << "Sorted array: \n";
    for (int i = 0; i< N; i++)
        cout<<output[i] << "  ";
    for (int j = 0; j < M; j++)
    {
        cout<< "\n" << "Input key for search: \n";
        cin>> k;
        if(binary(k) < 0)
            cout<< "There is no such key!\n";
        else
            cout<< "The index of the key is: " << binary(k) + 1 << "\n";
    }
}
 
int main()
{
    Bubble b;
    b.input();
    b.bubbleSort();
    b.output();
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2013, 22:57     Ошибка: "Expression must be modifiable lvalue"
Посмотрите здесь:

Ошибка expected primary-expression before "long" C++
C++ Expression must be a modifiable lvalue
Ошибка "Constant expression is required" - const в сlass C++
C++ Компилатор, ошибка "expected primary-expression before "int" "
C++ В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
Бинарный поиск, ошибка: "Invalid operands to binary expression" C++
Ошибка "Constant expression is required" C++
Не удается переписать переменную : "Expression must be a modifiable Ivalue" C++
Оператор if, ошибка "Expression syntax" C++
Ошибки "Expression syntax" и "Unreachable code" при реализации класса матриц C++
Ошибка "Expression expected" C++
Ошибка "expected primary-expression before 'char'" при объявления переменной C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.10.2013, 23:50     Ошибка: "Expression must be modifiable lvalue" #2
Измените имя поля:
C++
1
int *out;
У вас метод в классе есть с именем output, из-за этого ошибка. И разберитесь с N и M, по-моему, у вас там путаница.
Yandex
Объявления
30.10.2013, 23:50     Ошибка: "Expression must be modifiable lvalue"
Ответ Создать тему
Опции темы

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