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

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

28.05.2017, 00:36. Показов 300. Ответов 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2017, 00:36
Ответы с готовыми решениями:

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

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

Неправильные результаты математических функций
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; int main() { //const float PI =...

Программа выводит неправильные результаты
program d; uses crt; var a:array of integer; s:real; i,n,k: integer; begin randomize;...

2
Одессит
240 / 86 / 43
Регистрация: 30.12.2013
Сообщений: 316
Записей в блоге: 2
28.05.2017, 11:05 2
Вы просто мастер объяснять. Нифига не понятно в чём проблема. Можете привести тот код, в котором возникает проблема?
Исправьте пожалуйста
C++
1
bool equal(set s)
на
C++
1
bool equal(const set &s)
И добавьте деструктор в котором освобождается память выделенная для bool *a;
1
278 / 250 / 209
Регистрация: 14.11.2016
Сообщений: 948
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2017, 11:21

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Неправильные результаты вычислений. Как исправить?
Есть такой код. Он компилится, пытается вычислять и записывает решение в другой файл. Однако...

Может ли memtest показывать неправильные результаты
Всем привет. Знакомый принес ноутбук. Сказал, что иногда появляются синии экраны. Я стал прогонять...

Решение СЛАУ методом Гаусса. Неправильные результаты
Всем добрый день. Программа неправильно находит корни. Не могу понять почему. Правильные корни:...

Массивы. Укажите неправильные операции присваивания
Имеются следующие описания: var a: array of integer; i: integer; Укажите неправильные...

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

не выполняются операции с файлами из скрипта
Доброго времени суток! стоит Windows Server 2008, на нем IIS7+php5.2.17+mysql5.5.19 проблема в...


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

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

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