Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2018, 14:38   #1
Desolar
Пользователь
 
Регистрация: 30.03.2018
Сообщений: 19
По умолчанию Исправить ошибку в программе поиска булеана С++

Доброго дня. Не могу увидеть что нужно изменить. Ошибка в том, если больше одного элемента, то при их вводе всегда говорит, что они одинаковые. Заранее спасибо.
Код:
#include <cmath>
#include <iomanip>
#include <string>
#include <iostream>
using namespace std;

string input(int number, string *arrstr) 
{
	arrstr = new string[128];
	string *copyarr = new string[128];
	int k = 1;

	for (int i = 0; i < number; i++)
	{
		cout<< "Enter element:"<< (i + 1) <<endl;
		cin >> *copyarr;
		if (i == 0)
		{ 
			arrstr = copyarr; }
		else
		{
			for (int j = 0; j < i; j++)
			{
				if (arrstr[j] == *copyarr)
				{
					cout<< "Plural cant contain similar elements\n"; // тут
					i = (i - 1);
					j = 0;
					k = 1;
					break;
				}
				else
				{
					if (k == i)
					{
						arrstr = copyarr;
						k = 1;
					}
					else k++;
				}
			}
		}
	}
	return *arrstr;
}

void output(string arrstr) 
{
	int i;
	for (i = 0; i < arrstr.size(); i++)
	{
		if (i == (arrstr.size() - 1))
			cout << arrstr[i];
		else 
			cout << arrstr[i] << ", ";
	}
	cout << "} \n";
};

void bn(int number, string arrstr)
{
	double nos = pow(2, number); 

	for (int i = 0; i < nos; i++)
	{
		cout<< "Subset:" << i + 1<<" "<< "{";
		for (int j = 0; j < number; j++) 
			if (i & (1 << j)) 
				cout << arrstr[j] ;
		cout <<"}\n" << setw(3);
	}

}

void main()
{
	string var;
	int number;
	cout<< "Please, enter the number of elements: ";
	cin >> number;
	var = input(number,0);
	cout << "\nYour plural: {0}" << "{";
	output(var);
	cout<< "\n Bulean of your Plural: \n\n";
	bn(number, var);

	cout << endl;
	
	system("pause");
}

Последний раз редактировалось Desolar; 15.04.2018 в 15:31.
Desolar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить ошибку в программе. Лександра Помощь студентам 1 13.05.2012 15:46
Исправить ошибку в программе MedvedPnZ Общие вопросы C/C++ 1 01.05.2012 20:37
ПОМОГИТЕ исправить ошибку в программе SYL@R Помощь студентам 1 21.11.2008 14:48