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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Garret192
1 / 1 / 0
Регистрация: 21.10.2009
Сообщений: 84
#1

в массиве... - C++

15.12.2009, 21:48. Просмотров 365. Ответов 5
Метки нет (Все метки)

Привет всем.Помогите пожалуйста решить задачу.
В массиве найти минимальный элемент встречающийся более одного раза.
Например
1 2 2 45
Результат
2
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2009, 21:48     в массиве...
Посмотрите здесь:

наименьшее значение в массиве поменять с последним элементом в массиве C++
Найти элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве B C++
C++ Скопировать в третий массив структуры, которые есть в первом массиве и которых нет во втором массиве
Значения, которые есть в первом массиве и которых нет во втором массиве, скопировать в третий массив C++
C++ Из массива А удалить те элементы, встречающиеся и в массиве А и в массиве В хотя бы два раза
Вывести элементы, которые есть в массиве А в нескольких экземплярах и отсутствуют в массиве В C++
C++ Найти наибольший элемент в массиве A которого нет в массиве B

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oOpss
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 14
15.12.2009, 22:07     в массиве... #2
у меня такая же задачка, но макс. нужно найти, тоже не получается
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.12.2009, 22:10     в массиве... #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
#include <iostream.h>
#include <windows.h>
 
int main ()
{
    int *mas, n, i, j, temp, fl, max;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Введите количество элементов массива: "<< endl;
    cin>>n;
    mas=new int[n];
    cout<<"Введите элементы массива: "<< endl;
    for(i=0; i<n; i++)
       {
          cout<<"["<<i<<"]= ";
          cin>>mas[i];
       }
        cout<<"исходный массив"<<endl;
    for(i=0; i<n; i++)
        cout<<mas[i]<<" ";
    cout<<endl;
    temp=0;
    for(i=1; i<n; i++)
        if(mas[temp]<mas[i])
            temp=i;
    max=temp;
    for(i=0; i<n-1; i++)
        if(mas[temp]>mas[i])
        {
            fl=0;
            for(j=i+1; j<n; j++)
                if(mas[j]==mas[i])
                    fl=1;
            if(fl)
                temp=i;
        }
    if(temp==max)
    {
        fl=0;
        for(i=0; i<max; i++)
            if(mas[temp]==mas[i])
                fl=1;
        for(i=0; i>max && i<n; i++)
            if(mas[temp]==mas[i])
                fl=1;
        if(fl)
            cout<<mas[temp]<<endl;
        else
            cout<<"Нет повторяющихся элементов"<<endl;
    }
    else
        cout<<mas[temp]<<endl;
 
     
    return 0; 
}
TanT
эволюционирую потихоньку
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
15.12.2009, 22:13     в массиве... #4
да вы чего, робя? на С ещё поди писать надо? голова у вас е, ну ка сами, не ужели не осилили. мож просто не хотите?

Добавлено через 43 секунды
Валер, ты тут. а я тя в аси не вижу, ЗДОРОВО!
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.12.2009, 22:15     в массиве... #5
Привет Андрей! Я в таком месте, где словно все в замедленном кино. Что бы отослать ответ приходится делать 10-15 попыток. Все очень медленно здесь.
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
15.12.2009, 22:47     в массиве... #6
Garret192,

В массиве найти минимальный элемент встречающийся более одного раза.
Например
1 2 2 45
Результат
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
#include <map>
#include <algorithm>
#include <functional>
#include <iostream>
#include <locale>
 
#include <boost/lambda/lambda.hpp>
using namespace boost::lambda;
 
int main()
{
    setlocale(LC_ALL, "");
 
    int arr[] = {1,2,3,4,5,5,6,7,8};
    const int N = sizeof(arr) / sizeof(arr[0]);
 
    typedef std::map<int, size_t> Z;
    Z z;
    std::for_each(arr, arr+N, ++var(z)[_1]);
 
    std::sort(arr, arr+N, std::greater<int>());
 
    typedef std::allocator<int>::const_pointer const_iterator;
    const const_iterator found = std::find_if(arr, arr+N, var(z)[_1] > 1u);
 
    if (found == arr+N)
        return std::cerr << "Нисего не насли, насяльника!" << std::endl, 1;
 
    std::cout << "Максимальный элемент: " << *found << std::endl;
 
    return 0;
}
Опробировано на:
Visual Studio 2008
Boost C++ Library
Yandex
Объявления
15.12.2009, 22:47     в массиве...
Ответ Создать тему
Опции темы

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