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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2011, 19:57   #1
Dushka
 
Регистрация: 28.09.2011
Сообщений: 4
По умолчанию

Нужно задать 2 массива( по 15 чисел, int).
Найти совпадающие числа из этих2 массивов и занести их в третий.
Помогите, пожалуйста, ничего не получается.

Мне нужно в Visual Studio

Последний раз редактировалось Stilet; 28.09.2011 в 20:49.
Dushka вне форума Ответить с цитированием
Старый 28.09.2011, 20:31   #2
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Dushka Посмотреть сообщение
Мне нужно в Visual Studio
Basic или C++?
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.09.2011, 20:37   #3
Dushka
 
Регистрация: 28.09.2011
Сообщений: 4
По умолчанию

С++
Пожалуйста)
Dushka вне форума Ответить с цитированием
Старый 28.09.2011, 20:52   #4
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Dushka Посмотреть сообщение
С++
Пожалуйста)
Код:
{
   int Arr1[15], Arr2[15], ArrRes[15];
   int i,j,n;
   cout << "Vvedite perviy massiv iz 15 elementov:\n";
   for (i=0; i<15; i++)
   {
      cin >> Arr1[i];
   }
   cout << "Vvedite vtoroy massiv iz 15 elementov:\n";
   for (i=0; i<15; i++)
   {
      cin >> Arr2[i];
   }
   n=0;  // Просто счетчик
   for (i=0; i<15; i++)
   {
      for (j=0; j<15; j++)
      {
         if (Arr1[i]==Arr2[j])
         {
            ArrRes[n]=Arr1[i];
            n++;
         }
      }
    }
    cout << "Result massiv = ";
    for (i=0; i<n; i++)
    {
       cin >> ArrRes[i]>>" ";
    }
    getch();
}
Попробуй! Могут быть ошибки - давно не писал на C++.
Помог - жми на весы!
ByAlex89@mail.ru

Последний раз редактировалось ByAlex; 28.09.2011 в 20:55.
ByAlex вне форума Ответить с цитированием
Старый 28.09.2011, 22:13   #5
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Ну и че, как?
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.09.2011, 22:17   #6
Dushka
 
Регистрация: 28.09.2011
Сообщений: 4
По умолчанию

Где-то ошибка.
Я немного поменяла, переделала, ошибки нет, но прога не работает все равно(
Dushka вне форума Ответить с цитированием
Старый 28.09.2011, 22:26   #7
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Dushka Посмотреть сообщение
Где-то ошибка.
Я немного поменяла, переделала, ошибки нет, но прога не работает все равно(
Отправь мне как-нибудь, какие ошибки там у тебя! Сделай PrintScreen. Или включи личные сообщение, я там тебе отпишу что делать!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.09.2011, 22:42   #8
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Вот, все, работает! Там была ошибка при выводе результирующего массива, вместо cin надо было написать cout. Только я писал в Embarcadero C++, думаю, вы сможете вписать необходимые библиотеки.
Код:
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop

#include <tchar.h>
int _tmain(int argc, _TCHAR* argv[])
{
   int Arr1[15], Arr2[15], ArrRes[15];
   int i,j,n;
   cout << "Vvedite perviy massiv iz 15 elementov:\n";
   for (i=0; i<15; i++)
   {
	  cin >> Arr1[i];
   }
   cout << "Vvedite vtoroy massiv iz 15 elementov:\n";
   for (i=0; i<15; i++)
   {
	  cin >> Arr2[i];
   }
   n=0;  // Просто счетчик
   for (i=0; i<15; i++)
   {
	  for (j=0; j<15; j++)
	  {
		 if (Arr1[i]==Arr2[j])
		 {
			ArrRes[n]=Arr1[i];
			n++;
		 }
	  }
	}
	cout << "Result massiv = ";
	for (i=0; i<n; i++)
	   cout << ArrRes[i]<<" ";
	getch();
	return 0;
}
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.09.2011, 23:13   #9
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Dushka

Нужно задать 2 массива( по 15 чисел, int).
Найти совпадающие числа из этих2 массивов и занести их в третий.


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

#include <iterator>
#include <algorithm>

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

#define MIN -10
#define MAX 10

struct R
{
	int operator()() const
	{
		return rand() % (MAX - MIN + 1) + MIN;
	}
};

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

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

template <size_t N>
int* intersect(int (&A)[N], int (&B)[N], int (&C)[N])
{
	std::sort(A, A + N);
	std::sort(B, B + N);

	return std::set_intersection(A, std::unique(A, A + N), B, std::unique(B, B + N), C);
}

int main()
{
	setlocale(LC_ALL, "");
	srand((unsigned) time(NULL));

	int A[15], B[15], C[15];

	generate(A);
	generate(B);

	std::cout << "A: " << A << std::endl;
	std::cout << "B: " << B << std::endl;

	int* end = intersect(A, B, C);

	std::cout << "C: { ";
	for (int* it = C; it != end; ++it)
		std::cout << *it << " ";
	std::cout << " }" << std::endl;

	return 0;
}
Пример работы программы: http://codepad.org/7Lh5aF0C
Rififi вне форума Ответить с цитированием
Старый 29.09.2011, 00:17   #10
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Dushka Посмотреть сообщение
Нужно задать 2 массива( по 15 чисел, int).
Найти совпадающие числа из этих2 массивов и занести их в третий.
Помогите, пожалуйста, ничего не получается.
Привет! Вот так попробуй -
Код:
// Как создать массив, я думаю, вы знаете
begin
   writeln('Vvedite perviy massiv iz 15 elementov:');
   for i:=1 to 15 do
      read(Arr1[i]);
   writeln('Vvedite vtoroy massiv iz 15 elementov:');
   for i:=1 to 15 do
      read(Arr2[i]);
   n:=1;  // Просто счетчик
   for i:=1 to 15 do
      for j:=1 to 15 do
      begin
         if Arr1[i]=Arr2[j] then
         begin
            ArrRes[n]:=Arr1[i];
            inc(n);
         end;
      end;
    write('Result massiv = ');
    for i:=1 to n-1 do
       write(ArrRes[i],' ');
    readln;
    readln;
end;
Как то так!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
указатели на массивы и массивы указателей blacktener Общие вопросы C/C++ 16 13.06.2011 20:45
Массивы sektor2011 Помощь студентам 0 27.01.2011 11:47
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12