Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Zorro33
0 / 0 / 0
Регистрация: 28.05.2017
Сообщений: 1
1

Операции с булевыми массивами в классе выполняются, но возвращают неправильные результаты

28.05.2017, 00:36. Просмотров 102. Ответов 2
Метки нет (Все метки)

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
class set 
{private: 
int max; 
int n; 
bool *a; 
public: 
set(int ms) 
{ 
 n=ms; 
 max=ms; 
 a=new bool[ms+1]; 
 for(int i=0;i<ms;i++) 
 a[i]=false; 
 a[ms]=true; 
}
bool equal(set s) 
{ 
 if (n!=s.n) 
 return false; 
 for (int i=0;i<n;i++) 
 {if (a[i]!=s.a[i]) 
  {cout«i«" "; 
  return false; 
  } 
 } 
return true; 
} 
};
void main() 
{set x1(20); 
set x2(20);
a=x1.equal(x2); 
if (a) 
cout«"Equall"«endl; 
else 
cout«"Not equall"«endl;
Существует класс множество(сет), в котором есть несколько функций типа объединения множеств или (в данном примере) проверки на равенство 2-ух множеств. При запуске работает исправно, но после выполнения функции запрашиваю вывод значений массива, и там появляются числа "192" "23" "2" "192" "23" "2" ... В чем может быть проблема и как решить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2017, 00:36
Ответы с готовыми решениями:

Неправильно выполняются мат операции
Всем привет! Сделал такую небольшую программку: #include &lt;iostream&gt; using...

Какие три операции выполняются при while(*str++)?
#include &lt;stdio.h&gt; using namespace std; int strLength(const char* str){ ...

при вводе четного числа. все операции необходимые выполняются, но потом переходит на нечетные.есть код. помогите, пожалуйста
вот при вводе нечетного числа, все идет хорошо. а как введу четное, то при...

Операции с одномерными массивами
Не знаю как правильно вычислить (a1+a20)(a2+a19)...........(a11+a10) Не...

Перегрузка операции < в классе
Хочу создать шаблон внутри класса Прототип template &lt;typename T&gt; bool...

2
kylroma
Одессит
213 / 75 / 37
Регистрация: 30.12.2013
Сообщений: 280
Записей в блоге: 1
Завершенные тесты: 2
28.05.2017, 11:05 2
Вы просто мастер объяснять. Нифига не понятно в чём проблема. Можете привести тот код, в котором возникает проблема?
Исправьте пожалуйста
C++
1
bool equal(set s)
на
C++
1
bool equal(const set &s)
И добавьте деструктор в котором освобождается память выделенная для bool *a;
1
anapshy
215 / 208 / 185
Регистрация: 14.11.2016
Сообщений: 817
Завершенные тесты: 3
28.05.2017, 11:21 3
Zorro33,
1) В чём проблема-то? Как ты запрашиваешь вывод массива?
2) Память не забывай освобождать.
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
#include <iostream>
class set {
private:
    int max, n;
    bool *a;
public:
    set(const int ms) {
        n = ms;
        max = ms;
        a = new bool[ms + 1];
        for (int i(0); i < ms; i++)
            a[i] = false;
        a[ms] = true;
    };
    bool equal(const set &s) const {
        if (n != s.n)
            return false;
        for (int i(0); i < n; i++)
            if (a[i] != s.a[i]) {
                std::cout << i << " ";
                return false;
            }
        return true;
    }
    ~set(void) { delete[] a; };
};
 
int main(void) {
    set x1(20);
    set x2(20);
    bool a = x1.equal(x2);
    std::cout << (a ? "Equal" : "Not Equall") << std::endl;
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2017, 11:21

Перегрузка операции сложения в классе
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;iomanip&gt; using namespace...

Коллекции. Операции с булевыми значениями. Random
Есть класс driver. public class Driver { private boolean...

В одном классе нужно создать массив, а в классе program его вывести. "Не все ветви кода возвращают значение"
В одном классе нужно создать массив, а в классе program его вывести, помогите,...


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

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

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