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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание консольного меню http://www.cyberforum.ru/cpp-beginners/thread359971.html
Дорогие друзья-товарищи, нужен совет по работе с консолью в Windows/Linux. Существуют ли какие-либо библиотеки (что наверняка) и функции, которые устанавливают взаимодействие системы со...
C++ VSC++ и DLL У меня возникла такая проблемка,есть проект в Visual Studio 2008 C++, из него нужно скомпилить DLL. Сам я с С++ вообще не сталкивался, так что помогите пожалуйста! P.s. Способ смены выходного файла в... http://www.cyberforum.ru/cpp-beginners/thread359970.html
C++ Проблема с указателями!
Создать программу для решения задачи построения слова из некоторого множества букв (игра Scrabble) используя алгоритмы поиска в глубину и в ширину. Длина слова не менее 5 букв. #include "stdafx.h"...
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, 22:04  [ТС]
Цитата Сообщение от Navern Посмотреть сообщение
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
int x[sizeOfX];
int y[sizeOfY];
int z[1000] = {0};  //массив z размер исходя из диапазона чисел
int a[]; //массив в который переносим элементы
 
 
//считаем с какой частотой встречаются элементы
//в массиве x
for ( int i = 0; i < sizeOfX; i++ )
   z[x[i]]++;
 
//вычитаем из этого элементы встречающиеся
//в массиве y   
for ( int i = 0; i < sizeOfY; i++ )
   z[y[i]]--;
    
//присваиваем массиву а, элементы встречающиеся в X
//чаще чем в Y
for ( int i = 0, j = 0; i < 1000; i++ )
{
   if ( z[i] > 0 )
    {  
    a[j] = i;
    j++;
   }
}
Попробовал вставить ваш код, но результат получается неверным.
Наверняка я где-то перемудрил когда его адаптировал.
Если не трудно гляньте:

Код
#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;}
		
		
[B]
		int z2[size];
		int a[size]; //массив в который переносим элементы
		for ( int i = 0; i < k; i++ )
			z2[mass_x_sl[i]]++;
		
		//вычитаем из этого элементы встречающиеся
		//в массиве y   
		for ( int i = 0; i < q; i++ )
			z2[mass_y_sl[i]]--;
        
		for ( int i = 0, j = 0; i < 1000; i++ )
		{
			if ( z2[i] > 0 )
			{  
				a[j] = i;
				j++;
			}
			
		}
		cout <<a[size] <<"- Третий массив";[/B]
		
		
	}
	return 0;
}

Вставлял только в конце при генерации элементов массива, для проверки. В "ручной ввод" скопипастить будет не проблема, осталось только разобраться почему результат оказывается не верным.
Сам новичок в C++. Спасибо за понимание.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru