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

Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива). - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Азер
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 5
10.05.2012, 21:18     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива). #1
Помогите решить задачу по С++
Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2012, 21:18     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива).
Посмотрите здесь:

Найти максимальное число, встречающееся в заданном массиве только два раза C++
Даден массив. Все четные елементы массива уменьшыть в два раза, а нечетные увеличить в два раза. C++
C++ Удалить из массива все элементы, встречающиеся ровно два раза
C++ в одномерном массиве найти элементы встречающиеся 2 раза и вывести их на экран
C++ Не понимаю (элементы, встречающиеся в массиве 2 раза)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
11.05.2012, 09:17     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива). #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
#include <stdlib.h>
 
#define N 10
 
int main()
{
     int* P = new int[N]; 
     for (int q = 0; q < N; q++)
           P[q] = rand() % N + 1;
 
     for (int n = 0; n < N; n++)
           printf("%d ",P[n]);
     printf("\n\n");
 
     for (int i = 0; i < N; i++)
     {
          int nCount = 1;
          for (int k = i + 1; k < N && P[i] > -1; k++)
              if (P[i] == P[k]) { P[k] = -1; nCount++; }
 
          if (nCount == 2) 
              printf("P[%d] = %d count = %d\n",i,P[i],nCount);
     }
 
    return 0;
}
http://liveworkspace.org/code/0fc479...ab0e2569692329
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
11.05.2012, 10:39     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива). #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
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
#include <iterator>
#include <ctime>
 
int main()
{
    std::vector<int> vec(15);
    srand(time(NULL));
    std::generate(vec.begin(), vec.end(), []() {
        return rand() % 10;
    });
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::set<int> mn;
    std::copy_if(vec.begin(), vec.end(), std::inserter(mn, mn.begin()), [const &vec](int item) -> bool {
        return std::count(vec.begin(), vec.end(), item) == 2;
    });
    std::copy(mn.begin(), mn.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,402
11.05.2012, 12:44     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива). #4
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
#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
#include <iterator>
#include <cstddef>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_real_distribution<> urd(0, 10);
    const std::size_t size = 15;
    int P[size];
    std::generate(P, P + size, [&urd, &gen] { return urd(gen); });
    std::copy(P, P + size, std::ostream_iterator<int>(std::cout, " "));
    std::vector<int> v;
    for (std::size_t i=0; i < size; i++)
        if (std::count(P, P + size, P[i]) == 2 ) v.push_back(P[i]);
    std::sort(v.begin(), v.end());
    std::cout<< std::endl;
    std::copy(v.begin(), std::unique(v.begin(), v.end()), std::ostream_iterator<int>(std::cout, " ")); 
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
11.05.2012, 13:22     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива). #5
Цитата Сообщение от Азер Посмотреть сообщение
Помогите решить задачу по С++
Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива).
- Вот простенько на плюсах
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
#include <ctime>
#include <iostream>
using namespace std;
 
//ÔóГ*êöèÿÿ ïðîâåðÿåò âñòðå÷Г*ГҐГІГ±Гї ëè val
//Гў Г¬Г*Г±Г±ГЁГўГҐ äî ïîçèöèè m
bool isDifferent(int m, int val, int * arr)
{
    bool bAbsent = true;
    for(int i = 0; i < m && bAbsent; i++)
    {
        if(arr[i] == val)
            bAbsent = false;
    }
    return bAbsent;
}
 
int main()
{
    int i, j, count, n;
    int * array = NULL;
    cout<<"Enter num of elements in array : ";cin>>n;
    array = new int[n];
    srand(time(0));
    //ÑîçäГ*ВёГ¬ ГЁ Г±Г°Г*çó ГЇГҐГ·Г*ГІГ*ГҐГ¬ Г¬Г*Г±Г±ГЁГў
    for(i = 0; i < n; i++)//ГѓГҐГ*åðèðóåì Г·ГЁГ±Г«Г* îò -n äî n
        cout<<(array[i] = rand()%(2*n) - n)<<" ";
    cout<<"\nNums only 2 times present in array\n";
    for(          i = 0; i < n; i++)
    {
        for(count = (j = 0);j < n; j++)
        {
            if(array[i] == array[j])
                count++;
        }
        if(count == 2 && isDifferent(i, array[i], array))
            cout<<array[i]<<endl;
    }
    
    system("pause");
    delete [] array;
    return 0;
}
Миниатюры
Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива).  
Азер
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 5
11.05.2012, 22:12  [ТС]     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива). #6
Мне в borland С++ нужно решить.
задачи должны быть на подобия такого
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <math.h>
main()
{
int a,b,c,x,y;
cin>> a;
cin>> b;
cin>> c;
x=-b/2*a;
y=a*x^2+b*x+c;
if (a>0);
cout<< "\n OTVET\n";
cout<< "x=" <<x<<"\n";
cout<< "y=" <<y<<"\n";
{
if (a<0)
cout<< "\n NEVERNO, TAK KAK a<0\n";
return 0;
}
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,402
11.05.2012, 22:30     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива). #7
Цитата Сообщение от Азер Посмотреть сообщение
C++
1
2
3
4
main()
y=a*x^2+b*x+c;
cout<< "\n OTVET\n";
cout<< "\n NEVERNO, TAK KAK a<0\n";
К сожалению, чтобы написать на таком уровне, мне придется забыть все знания как языка с++, так и английского.

Вам предложили много способов, все достойные, рабочие. Выбирайте любой на выбор, легче не будет. Если они вам кажутся слишком нетривиальными - почитайте соответствующую литературу, Дейтела, например.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2012, 21:17     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива).
Еще ссылки по теме:

C++ Из массива А удалить те элементы, встречающиеся и в массиве А и в массиве В хотя бы два раза
Все элементы массива, меньшие заданного числа, увеличить в два раза C++
C++ Найти все числа, встречающиеся и в 1-м и во 2-м массиве

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

Или воспользуйтесь поиском по форуму:
Азер
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 5
17.05.2012, 21:17  [ТС]     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива). #8
Всем спасибо!!!
Yandex
Объявления
17.05.2012, 21:17     Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива).
Ответ Создать тему
Опции темы

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