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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2011, 18:12   #1
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
Вопрос Не могу разобраться с указателями

Здраствуйте все вот короче мне задали задачки на Си написать вот они собствено :
1.Даны два массива, упорядоченных по возрастанию: А[n] и B[m]. Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возрастанию.
2.Даны два массива : А[n] и B[m]. Необходимо создать третий массив, в котором нужно собрать:
- Элементы обоих массивов;
- Общие элементы двух массивов;
- Элементы массива A, которые не включаются в B;
- Элементы массива B, которые не включаются в A;
- Элементы массивов A и B, коотрые не являются общими дял них (то есть объединение результатов двух - предыдущих вариантов).

Помогите как и счего начать программу ?
FRATER1234 вне форума Ответить с цитированием
Старый 12.10.2011, 19:51   #2
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
По умолчанию

Ну помогите пожалуста
FRATER1234 вне форума Ответить с цитированием
Старый 12.10.2011, 20:04   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Я одного не понимаю. Вам нужно решить эти задачи с помощью обычных массивов или указателей?
И ещё, наработки есть? Ежели нету, вам сюда Фриланс
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.10.2011, 20:36   #4
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
По умолчанию

Нароботок нету ибо я просто с указателями плохо ищо понял и хотелбы чтоб мне помогли и да мне надо с помощью обычных массивов и указателями пользоваться так как без указателей задача не годяться он просто не приймет препод
FRATER1234 вне форума Ответить с цитированием
Старый 12.10.2011, 22:12   #5
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Подмогнём, пожалуй, студню... ((Ж

Последний пункт давай сам, а то мне влом.

Код:
#include <locale>
#include <iostream>
#include <algorithm>
#include <iterator>

#include <stdlib.h>
#include <time.h>

/*
1.Даны два массива, упорядоченных по возрастанию: А[n] и B[m]. Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возрастанию.
	2.Даны два массива : А[n] и B[m]. Необходимо создать третий массив, в котором нужно собрать:
- Элементы обоих массивов;
- Общие элементы двух массивов;
- Элементы массива A, которые не включаются в B;
- Элементы массива B, которые не включаются в A;
- */

#define FROM -10
#define TO 10

struct R
{
	int operator()() const
	{
		return rand() % (TO - FROM + 1) + TO;	// -10..10
	}
};

template <typename InIt>
std::ostream& operator<< (std::ostream& os, const std::pair<InIt, InIt>& v)
{
	typedef std::ostream_iterator<int> O;
	std::copy(v.first, v.second, O(os, " "));
	return os;
}

template <size_t N>
std::ostream& operator<< (std::ostream& os, const int (&arr)[N])
{
	return os << std::make_pair(arr, arr + N);
}

template <size_t N>
int (&generate(int (&arr)[N]))[N]
{
	std::generate(arr, arr + N, R());
	std::sort(arr, arr + N);
	return arr;
}

template <size_t N, size_t M>
void all(const int (&a)[N], const int (&b)[M])
{
	int c[N + M] = {0};

	std::copy(a, a + N, c);
	std::copy(b, b + M, c + N);
	std::sort(c, c + N + M);

	std::cout << "All: " << std::make_pair(c, std::unique(c, c + N + M)) << std::endl;
}

template <size_t N, size_t M>
void common(const int (&a)[N], const int (&b)[M])
{
	int c[N + M] = {0};

	std::cout << "Common: " << std::make_pair(c, std::set_intersection(a, a + N, b, b + M, c)) << std::endl;
}

template <size_t N, size_t M>
void exclude(const char* title, const int (&a)[N], const int (&b)[M])
{
	int c[N + M] = {0};

	int a1[N] = {0};
	std::copy(a, a + N, a1);

	int b1[M] = {0};
	std::copy(b, b + M, b1);

	std::cout << "Exclude " << title << ": " << std::make_pair(c, std::set_difference(a1, std::unique(a1, a1 + N), b1, std::unique(b1, b1 + M), c)) << std::endl;
}

int main()
{
	int a[10] = {0};
	int b[20] = {0};

	int c[sizeof(a)/sizeof(a[0]) + sizeof(b)/sizeof(b[0])] = {0};

	setlocale(LC_ALL, "");
	srand((unsigned) time(NULL));

	std::cout << "A: " << generate(a) << std::endl;
	std::cout << "B: " << generate(b) << std::endl;
	
	all(a, b);
	common(a, b);
	exclude("A!B", a, b);
	exclude("B!A", b, a);

	return 0;
}
Пример работы программы: http://codepad.org/jWypYEKU
Rififi вне форума Ответить с цитированием
Старый 13.10.2011, 00:14   #6
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
По умолчанию

А на Си можно а не на С++ ((
FRATER1234 вне форума Ответить с цитированием
Старый 13.10.2011, 10:42   #7
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Rififi, это вы так самовыражаетесь? Вы же прекрасно понимаете, что во-первых, человек задающий подобные вопросы (ТС) не в состоянии разобраться в подобном коде, а во-вторых подобный код просто не нужен в условиях данной задачи.

FRATER1234, либо вы задаете конкретные вопросы по указателям, которые вам не понятны, либо идете во фриланс и создаете тему "решите за меня задачи".
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 13.10.2011, 11:23   #8
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

FRATER1234

А на Си можно а не на С++ ((

Ну объясни преподу, что бесплатно тебе дали только на C++, преподы же не звери в конце-концов, должны понимать, что на форумах за решения хотят денег :D
Rififi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается разобраться в программе с указателями sunny_alice Паскаль, Turbo Pascal, PascalABC.NET 15 16.04.2011 22:26
[C++] Не могу разобраться ... AquaticSoul Общие вопросы C/C++ 8 24.03.2010 16:23
Не могу разобраться semAz Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 10.03.2010 17:43
Товарищи, помогите разобраться с указателями scibern Общие вопросы C/C++ 7 11.01.2009 12:28