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

Динамический массив скопировать числа которые повторились 2 раза - C++

Восстановить пароль Регистрация
 
JIioneJI
1 / 1 / 0
Регистрация: 04.01.2013
Сообщений: 121
31.03.2013, 23:50     Динамический массив скопировать числа которые повторились 2 раза #1
Программа должна создать динамический массив из 20 случайных элементов из диапазона [1;9] и вывести его на экран. Далее программа должна скопировать во второй динамический массив только те элементы, которые в первом массиве встретились ровно 2 раза (если такие будут) и вывести второй массив на экран на отдельной строке.

Добавлено через 34 минуты
Цитата Сообщение от JIioneJI Посмотреть сообщение
Программа должна создать динамический массив из 20 случайных элементов из диапазона [1;9] и вывести его на экран. Далее программа должна скопировать во второй динамический массив только те элементы, которые в первом массиве встретились ровно 2 раза (если такие будут) и вывести второй массив на экран на отдельной строке.
я не прошу делать всю программу, подскажите как выполнить действие что б проверить, что число встретилось 2 раза в массиве.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2013, 23:50     Динамический массив скопировать числа которые повторились 2 раза
Посмотрите здесь:

В новый динамический массив выписать все элементы массива, которые делятся на заданное число C++
Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза. C++
C++ Одномерный массив А суммируется из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза
C++ Создать динамический массив нужного размера и скопировать в него все положительные элементы из первых двух массивов
Многомерные массивы. Найти и напечатать числа, которые встречаются в массиве более одного раза C++
Найти и напечатать числа, которые встречаются в массиве более одного раза C++
Скопировать один динамический массив в другой C++
Выделить в другой массив все числа, которые встречаются более одного раза в исходном C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
31.03.2013, 23:55     Динамический массив скопировать числа которые повторились 2 раза #2
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <stdlib.h>
#include <algorithm>
#include <time.h>
using namespace std;
void main()
{ 
    srand((unsigned) time(NULL)); 
    int *pt=new int[20];
    int count = 0;
    for(int i=0; i<20; i++)
    {
        pt[i]=rand()%9+1;
    }
    for(int i=0; i<20; i++)
    {
        cout<<pt[i]<<" ";
    }
    sort(pt, pt + 20);
    cout<<endl;
    for(int i=0; i<20; i++) // вывод отсортированного массива
    {
        cout<<pt[i]<<" ";
    }
    if (pt[0] == pt[1] && pt[1] != pt[2])
        count++;
    for(int i=1; i<18; i++)
    {
        if (pt[i] == pt[i+1] && pt[i] != pt[i+2] && pt[i] != pt[i-1])
            count++;
    }
    if (pt[19] == pt[18] && pt[18] != pt[17])
        count++;
    cout<<endl;
    //cout<<count<<endl;
    int* pt2 = new int[count];
    int k = 0;
    if (pt[0] == pt[1] && pt[1] != pt[2]) {
            pt2[k] = pt[0];
            ++k;
    }
    for(int i=1; i<18; i++)
    {
        if (pt[i] == pt[i+1] && pt[i] != pt[i+2] && pt[i] != pt[i-1]) {
            pt2[k] = pt[i];
            ++k;
        }
    }
    if (pt[19] == pt[18] && pt[18] != pt[17])
            pt2[k] = pt[19];
    for(int i=0; i<count; i++)
    {
        cout<<pt2[i]<<" ";
    }
    system("PAUSE");
}
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
31.03.2013, 23:56     Динамический массив скопировать числа которые повторились 2 раза #3
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <cstdlib>
#include <ctime>
 
bool hasElement(int *arr, const int N, int element);
void printArray(int *arr, const int N);
 
int main()
{
 
   const int reqCount = 2; // required count
   const int ARR_SIZE = 20;
   int *arr1 = new int[ARR_SIZE];
   int *arr2 = new int[ARR_SIZE];
   int arr2Count = 0;
 
   srand(time(NULL));
 
   for (int i = 0; i < ARR_SIZE; ++i)
      arr1[i] = rand() % 9 + 1;
 
   std::cout << "arr1:" << std::endl;
   printArray(arr1, ARR_SIZE);
 
   arr2Count = 0;
   for (int i = 0; i < ARR_SIZE - 1; ++i)
   {
      int count = 0;
 
      for (int j = 0; j < ARR_SIZE; ++j)
      {
         if (arr1[i] == arr1[j])
            ++count;
      }
      if (count == reqCount && !hasElement(arr2, arr2Count, arr1[i]))
      {
         arr2[arr2Count] = arr1[i];
         ++arr2Count;
      }
   }
 
   std::cout << "arr2:" << std::endl;
   printArray(arr2, arr2Count);
 
   delete[] arr1;
   delete[] arr2;
 
   return 0;
}
 
void printArray(int *arr, const int N)
{
   for (int i = 0; i < N; ++i)
      std::cout << arr[i] << ' ';
   std::cout << std::endl;
}
 
bool hasElement(int *arr, const int N, int element)
{
   // проверяет, есть ли элемент element в массиве arr из N элементов
   for (int i = 0; i < N; ++i)
   {
      if (arr[i] == element)
         return true;
   }
 
   return false;
}
Yandex
Объявления
31.03.2013, 23:56     Динамический массив скопировать числа которые повторились 2 раза
Ответ Создать тему
Опции темы

Текущее время: 18:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru