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

Найти максимальное число, встречающееся в заданном массиве только два раза - C++

Восстановить пароль Регистрация
 
kenny956
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 14
24.11.2010, 08:07     Найти максимальное число, встречающееся в заданном массиве только два раза #1
Найти максимальное число, встречающееся в заданном массиве только два раза.
Заранее спасибо!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 08:07     Найти максимальное число, встречающееся в заданном массиве только два раза
Посмотрите здесь:

найти максимальное из чисел встречающихся в данном одномерном массиве более одного раза C++
Найти минимальное число, встречающееся в заданном векторе более одного раза C++
Задан одномерный массив, содержащий n элементов. Найти максимальное из чисел, встречающееся в массиве более одного раза C++
Разработать функцию, определяющую максимальное число, встречающееся в массиве больше одного раза C++
C++ найти максимальное из чисел, встречающееся в заданном целочисленном массиве более одного раза
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
24.11.2010, 08:22     Найти максимальное число, встречающееся в заданном массиве только два раза #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
#include <iostream.h>
#include <stdio.h>
using namespace std;
int main ()
{
    int a[40];
    int n;
    int i,max,j,d=0;
    cin>>n;
    for(i=0;i<n;i++)
        cin>>a[i];
    max=a[0];
    for(i=0;i<n;i++)
    {
        if(a[i]>=max)
        {
            j=i+1;
            while(j!=n)
            {
                if(a[i]==a[j])
                {
                    d++;
                }
                j++;
            }
            if(d==1)
                max=a[i];
        }
        j=0;
        d=0;
    }
    cout<<max;
    system(" PAUSE ");
    return 0;
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 08:43     Найти максимальное число, встречающееся в заданном массиве только два раза #3
VASSUV, Не правильно будет считать в случае когда a[0] самое максимальное число в массиве и встречается не 2 раза. Точнее сказать когда a[0] больше правильного ответа.
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
24.11.2010, 08:44     Найти максимальное число, встречающееся в заданном массиве только два раза #4
Все правильно будет считать! У меня цикл начинается с первого элемента! и условие больше либо равно!
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 08:46     Найти максимальное число, встречающееся в заданном массиве только два раза #5
VASSUV, Хорошо вот массив:
100 2 3 4 5 6 6 7 8
Что на выходе будет?
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
24.11.2010, 08:47     Найти максимальное число, встречающееся в заданном массиве только два раза #6
6 6 будет
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 08:48     Найти максимальное число, встречающееся в заданном массиве только два раза #7
А я отсюда вижу что выдаст 100
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
24.11.2010, 09:03     Найти максимальное число, встречающееся в заданном массиве только два раза #8
Извини я не правильно решил щас исправлю!

Добавлено через 1324354657687980593725241435465756849382725465869402816274 минут
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
#include <stdio.h>
using namespace std;
int main ()
{
    int a[40];
    int n;
    int i,max,j,d=0;
    cin>>n;
    for(i=0;i<n;i++)
        cin>>a[i];
    for(i=0;i<n && d!=1;i++)
    {
        j=i+1;
        while(j!=n)
        {
            if(a[i]==a[j])
                d++;
            j++;
        }
        if(d==1)
            max=a[i];
        else
            d=0;
    }
    if(i!=n)
    {
        for(i=i-1;i<n;i++)
        {
            if(a[i]>=max)
            {
                j=i+1;
                while(j!=n)
                {
                    if(a[i]==a[j])
                        d++;
                    j++;
                }
                if(d==1)
                    max=a[i];
            }
            j=0;
            d=0;
        }
        cout<<max;
    }
    else
    {
        cout<<"Takogo max netu!!!";
    }
    
    system(" PAUSE ");
    return 0;
}
тока так!
turtLe
3 / 3 / 2
Регистрация: 11.11.2009
Сообщений: 41
24.11.2010, 11:57     Найти максимальное число, встречающееся в заданном массиве только два раза #9
01110
выдает 1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2010, 21:15     Найти максимальное число, встречающееся в заданном массиве только два раза
Еще ссылки по теме:

В заданном массиве целых чисел найти максимальное и минимальное число C++
C++ В двухмерном массиве найти строки, не содержащие нулей и максимальное число, встречающееся более одного раза
Найти минимальное число, встречающееся в заданном массиве только один раз C++

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 21:15     Найти максимальное число, встречающееся в заданном массиве только два раза #10
Да, действительно, так и есть. Причина здесь в том что когда программа доходит до третьего элемента - второй единицы (max в это время равен 0), то считая кол-во таких же элементов (как a[i]) до конца массива, получает результат d=1. В общем в этом случае не учитывает что до этого тоже была 1.

Добавлено через 8 часов 58 минут
За основу взял код VASSUV:
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 <iostream>
#include <stdio.h>
using namespace std;
int main ()
{
        int a[40];
        int n;
        int i,max=-1,j,d;
        cin>>n;
        for(i=0;i<n;i++)
                cin>>a[i];
        for(i=0; i<n; i++)
        {
            if(max!=-1 && a[i]>a[max])
            {
                d=0;
                for(j=0; d<=2 && j<n; j++)
                    if(a[j]==a[i])
                        d++;
                if(d==2)
                    max=i;
            }
            if(max==-1)
            {
                d=0;
                for(j=0; d<=3 && j<n; j++)
                    if(a[j]==a[i])
                        d++;
                if(d==2)
                    max=i;
            }
        }
        if(max!=-1)
        {
            cout<<a[max];
        }
        else
        {
            cout<<"Takogo max netu!!!";
        }        
        system(" PAUSE ");
        return 0;
}
Yandex
Объявления
24.11.2010, 21:15     Найти максимальное число, встречающееся в заданном массиве только два раза
Ответ Создать тему
Опции темы

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