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

Сформировать третий массив, в который перенести из массива X те элементы, которые встречаются в нём чаще, чем в массиве Y. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание консольного меню http://www.cyberforum.ru/cpp-beginners/thread359971.html
Дорогие друзья-товарищи, нужен совет по работе с консолью в Windows/Linux. Существуют ли какие-либо библиотеки (что наверняка) и функции, которые устанавливают взаимодействие системы со "стрелочками":вверх, вниз, вправо, влево? В частности, я хочу сделать консольное меню такого вида: 1)... 2)...<< 3)... где "<<" - аналог курсора, перемещение которого по экрану зависит от нажатия клавиш...
C++ VSC++ и DLL У меня возникла такая проблемка,есть проект в Visual Studio 2008 C++, из него нужно скомпилить DLL. Сам я с С++ вообще не сталкивался, так что помогите пожалуйста! P.s. Способ смены выходного файла в свойствах проекта на DLL не работает почему то... + ко всему у меня 64 битная винда. Заранее спасибо=)) http://www.cyberforum.ru/cpp-beginners/thread359970.html
C++ Проблема с указателями!
Создать программу для решения задачи построения слова из некоторого множества букв (игра Scrabble) используя алгоритмы поиска в глубину и в ширину. Длина слова не менее 5 букв. #include "stdafx.h" #include<iostream> #include <cstring> using namespace std; int max; char str1, str2; char pastSymbol (char *str, char symbol, int position); void rec(int k, char str);
C++ Отыскание прохода по лабиринту
Здравствуйте! Очень нужна помощь. Описать класс, реализующий стек. Написать программу, использующую этот класс для отыскания прохода по лабиринту. Лабиринт представляется в виде матрицы, состоящей из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то вход в него возможен со стороны, но не с угла. Каждый квад* рат определяется...
C++ Хэштаблицы с квадратичным исследованием.Ошибка http://www.cyberforum.ru/cpp-beginners/thread359956.html
Здравствуйте, помогите исправить ошибку Ошибка Error error C2065: 'mas' : undeclared identifier #include "stdafx.h" #include <time.h> #include <conio.h>
C++ Как избежать постоянных инициализаций временного объекта? Здравствуйте! Будет ли этот код class my::testBuffer{ //код А private: int data; public: testBuffer(const int& d ) : data(d) { } int getData() подробнее

Показать сообщение отдельно
zaqqaz
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 12
03.10.2011, 20:44     Сформировать третий массив, в который перенести из массива X те элементы, которые встречаются в нём чаще, чем в массиве Y.
Задача:
Заданы два целочисленных массива X и Y. Сформировать третий массив, в который перенести из массива X те элементы, которые встречаются в нём чаще, чем в массиве Y.

Примечание. При написании программы необходимо использовать статический массив. Его максимальная размерность задается именованной константой. Реальное количество элементов массива вводится с клавиатуры с контролем на выход за границы массива. Предусмотреть два способа заполнения массива: с клавиатуры и с помощью датчика случайных чисел (функции rand). В последнем случае перед заполнением массива следует ввести границы интервала, которому будут принадлежать элементы массива.
Если задача не имеет решения, то выдать об этом сообщение.

Собственно, реализовал ввод элементов массива и их сортировку. А вот перенести з массива X те элементы, которые встречаются в нём чаще, чем в массиве Y, что то не получается... Пробовал set_difference, что-то не выходит... и второй способ заполнения(рандомом) также не знаю как реализовать.
Помогите пожалуйста. Завтра уже сдать нужно...
Вот, что у меня получилось на данный момент:
Код
#include <algorithm>
#include <iostream>
using namespace std;

int main() {
	setlocale (LC_ALL, ".1251");

	cout <<"Буддем вводить элементы массивов сами или же генерируем? ('1; - сами, '0' - генерируем \n";
	int p; // проверка(сами или нет)
	cin >> p;
	if (p == 1){
	cout <<"vvedite kol-vo elementov v 1'om massive \n";
	int n;
	cin >> n;
		int q = 0,z=0,k=0;
	const int size = 1000;
		int mass_x [size];
		for (int i = 0; i != n; ++i, ++q, ++k) {		
		cout << "vved " << i + 1 << " elem: ";
		cin >> mass_x[i]; 

	}
		// сортировка
		cout << "Сортировка(по возрастанию): ";		
		sort(mass_x, mass_x + k);
		for(int i = 0; i < k; ++i)
		cout << mass_x[i] <<";";
		cout << endl;

		
		

	cout <<"vvedite kol-vo elementov v 2'om massive \n";
	int n2;
	cin >> n2;
	
    int mass_y [size];
	for (int i = 0; i != n2; ++i, ++z) {
		cout << "vved " << i + 1 << " elem: ";
		cin >> mass_y[i]; 

	}
		// сортировка
		cout << "Сортировка(по возрастанию): ";		
		sort(mass_y, mass_y + z);
		for(int i = 0; i < z; ++i)
		cout << mass_y[i] <<";";
		cout << endl;
		
[B]                // Вот с этого момента у меня уже не выходит продолжить реализацию кода. Подскажите.[/B]
		int mas_result[size];
		cout<<"Result: "<<(set_difference(mass_x,mass_x+k,mass_y,mass_y+z,mas_result))<<endl;

	}



	else 
	
	
		return 0;
	
	
}
Заранее спасибо.

Добавлено через 2 часа 4 минуты
Удалось самому дописать рандомный способ заполнения.
А вот сформировать третий массив, в который перенести из массива X те элементы, которые встречаются в нём чаще, чем в массиве Y, увы - нет!
Подскажите.

На данный момент:
Код
#include <algorithm>
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
using namespace std;

int main() {
	setlocale (LC_ALL, ".1251");

	cout <<"Буддем вводить элементы массивов сами или же генерируем? ('1; - сами, '0' - генерируем \n";
	int p; // проверка(сами или нет)
	cin >> p;
	if (p == 1){
	cout <<"vvedite kol-vo elementov v 1'om massive \n";
	int n;
	cin >> n;
		int q = 0,z=0,k=0;
	const int size = 1000;
		int mass_x [size];
		for (int i = 0; i != n; ++i, ++q, ++k) {		
		cout << "vved " << i + 1 << " elem: ";
		cin >> mass_x[i]; 

	}
		// сортировка
		cout << "Сортировка(по возрастанию): ";		
		sort(mass_x, mass_x + k);
		for(int i = 0; i < k; ++i)
		cout << mass_x[i] <<";";
		cout << endl;

		
		

	cout <<"vvedite kol-vo elementov v 2'om massive \n";
	int n2;
	cin >> n2;
	
    int mass_y [size];
	for (int i = 0; i != n2; ++i, ++z) {
		cout << "vved " << i + 1 << " elem: ";
		cin >> mass_y[i]; 

	}
		// сортировка
		cout << "Сортировка(по возрастанию): ";		
		sort(mass_y, mass_y + z);
		for(int i = 0; i < z; ++i)
		cout << mass_y[i] <<";";
		cout << endl;
		

		
	}


// генерируем. 
	
	else {
		cout <<"vvedite kol-vo elementov v 1'om massive \n";
	int n;
	cin >> n;
	int q = 0,z=0,k=0;
	const int size = 1000;
	int mass_x_sl [size];
	
	int i;
	srand(time(0));
	for (i=0;i<n;i++,++k) {
		mass_x_sl[i]=rand() % 1000;

		}
		// сортировка
		cout << "Сортировка(по возрастанию, 1ый массив): ";		
		sort(mass_x_sl, mass_x_sl + k);
		for(int i = 0; i < k; ++i)
			cout << mass_x_sl[i] <<";";
		cout << endl;
		
		cout <<"vvedite kol-vo elementov v 2'om massive \n";
		int n2;
		cin >> n2;
        int mass_y_sl [size];
		srand(time(0));
		for (i=0;i<n2;i++, ++q) {
			mass_y_sl[i]=rand() % 1000;
			
		}
		// сортировка
		cout << "Сортировка(по возрастанию, 2ой массив): ";		
		sort(mass_y_sl, mass_y_sl + q);
		for(int i = 0; i < q; ++i)
			cout << mass_y_sl[i] <<";";
		cout << endl;
		
	}
	return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru