Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Alias_ru
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 3
1

Найти три наименьших элемента произвольного одномерного массива

13.07.2014, 23:59. Просмотров 989. Ответов 6
Метки нет (Все метки)

1 Найти 3 наименьших элемента произвольного одномерного массива.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2014, 23:59
Ответы с готовыми решениями:

Найти три наименьших элемента произвольного одномерного массива
Найти три наименьших элемента произвольного одномерного массива....

Найти пять наименьших элементов одномерного массива
Найти пять наименьших элементов одномерного массива целых чисел,напишите код на...

Найти минимальный элемент произвольного одномерного массива
найти минимальный элемент произвольного одномерного массива

Найти наибольший общий делитель для элементов произвольного одномерного массива
Найти наибольший общий делитель для элементов произвольного одномерного массива...

Найти минимальные элементы в каждом столбце произвольного двумерного массива и записать их в виде одномерного
Найти минимальные элементы в каждом столбце произвольного двумерного массива и...

6
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,803
Записей в блоге: 2
Завершенные тесты: 1
14.07.2014, 08:53 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
 
int main()
{
    std::vector < int > vec ( std::istream_iterator<int>(std::cin) , std::istream_iterator<int>() ) ;
    if ( vec.size() < 3 )
    {
        std::cerr << "Error\n" << std::endl ;
        return 1 ;
    }
    std::nth_element ( vec.begin() , vec.begin() + 2 , vec.end() ) ;
    std::copy ( vec.begin() , vec.begin() + 3 , std::ostream_iterator<int>(std::cout, " ") ) ;
}
1
SatanaXIII
Почетный модератор
Эксперт С++
5777 / 2775 / 380
Регистрация: 01.11.2011
Сообщений: 6,755
Завершенные тесты: 1
14.07.2014, 10:52 3
Pascal
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
Uses crt;
 
Const M = 3;
 
Type ArrTp = Array [1..1] of Integer;
     PArr = ^ArrTp;
 
Var Arr : PArr;
    Count, i, j : Integer;
    Min : Array [1..M] of Integer;
 
Label EndLoop;
 
Begin
clrscr;
 
Write( 'N=' );
ReadLn( Count );
 
If Count > M then
  begin
  GetMem( Arr, Count * SizeOf( pArr ) );
 
  Randomize;
  For i:=1 to Count do
    Arr^[i] := Random( 100 );
 
  For i:=1 to M do
    Min[i] := Arr^[i];
 
  For i:=1 to Count do
    begin
    For j:= 1 to M do
      If Arr^[i] = Min[j] then
        Goto EndLoop;
 
    For j:= 1 to M do
      If Arr^[i] < Min[j] then
        begin
        Min[j] := Arr^[i];
        Break;
        end;
    EndLoop:
    end;
  FreeMem( Arr, Count * SizeOf( pArr ) );
 
  For j:= 1 to M do
    WriteLn( 'Min[', j, ']=', Min[j] );
  end;
Readln;
End.
0
Тамика
14.07.2014, 10:56
  #4

Не по теме:

Паскаль?..Зачем Паскаль?:)

0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26502 / 17797 / 7042
Регистрация: 22.10.2011
Сообщений: 31,325
Записей в блоге: 6
14.07.2014, 13:04 5
Цитата Сообщение от Тамика Посмотреть сообщение
Паскаль?..Зачем Паскаль?
Уточняю вопрос: зачем ТАКОЙ Паскаль?

SatanaXIII, хотелось показать, как грубо выглядит код на Паскале в сравнении с С++? А научиться писать нормальный, а не г...код - не пробовал? Попробуй, возможно, у тебя даже получится... Ну, скажем:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{$mode objfpc}
uses math, FGL;
 
type
  T = specialize TFPGList<Integer>;
 
function MySort(const v1, v2: Integer) : Integer;
begin Result := CompareValue(v1, v2); end;
 
var i : Integer;
 
begin
  with T.Create do
  try
    while not eoln do
    begin read(i); Add(i) end;
 
    Sort(@MySort);
    for i := 0 to 2 do writeln(Items[i]);
 
  finally
    Free;
  end;
end.
0
SatanaXIII
Почетный модератор
Эксперт С++
5777 / 2775 / 380
Регистрация: 01.11.2011
Сообщений: 6,755
Завершенные тесты: 1
14.07.2014, 13:09 6
Тубропаскаль не знать о такая директиве:
Цитата Сообщение от UI Посмотреть сообщение
{$mode objfpc}


Добавлено через 66 секунд
Цитата Сообщение от UI Посмотреть сообщение
хотелось показать, как грубо выглядит код на Паскале в сравнении с С++?
Откуда такие мысли вообще? Телепат все ж пробудился, я гляжу?
0
IrineK
Заблокирован
14.07.2014, 15:32 7
Впору разбрасывать тему по разным разделам )

Можно не сортировать весть массив (~N logn), а упорядочивать выбранную тройку (от 2 до 4 сравнений)
За один проход можно управиться (~N)

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <iostream>
#include <ctime>
 
//---------------------------------------------------------------
int *CreateRandomArray (int N)
{
    int *arr = new int [N];
    for (int i = 0; i<N; i++)
        arr[i] = rand()%100;
 
    return arr;
}
 
void PrintArray (char *name, int *arr, int N)
{
    std::cout <<"\n"<<name <<":\n";
    for (int i = 0; i<N; i++)
        std::cout << *(arr+i) << "  ";
    std::cout <<"\n";
}
//-----------------------------------------------------------------
 
typedef struct trio
{
    int min,middle,max;
}TRIO;
 
 
void ArrangeTrio (TRIO *order)
{
    int a = order->min, b = order->middle, c= order->max;
    if(a>b)
    {   if(b>c)
        {   order->min = c;
            order->middle = b;
            order->max = a;
        }
        else if(a>c)
        {   order->min = b;
            order->middle = c;
            order->max = a;
        }
        else
        {   order->min = b;
            order->middle = a;
            order->max = c;
        }
    }
    else
    {   if(b<c)
        {   order->min = a;
            order->middle = b;
            order->max = c;
        }
        else if(a<c)
        {   order->min = a;
            order->middle = c;
            order->max = b;
        }
        else
        {   order->min = c;
            order->middle = a;
            order->max = b;
        }
    }
}
 
void GetTrio (int *arr, int M, TRIO *res)
{
    for (int i = 4; i<M; i++)
        if (arr[i]<res->max)
        {   res->max = arr[i];
            ArrangeTrio(res);
        }
}
 
//----------------------------------------------------------------------------
int main()
{   
    srand ((unsigned int)time (NULL));
    
    int M = 15;
    int *arr = CreateRandomArray (M);
    PrintArray ("Array", arr, M);
 
    TRIO *res = new TRIO;
    res->min = arr[0];
    res->middle = arr[1];
    res->max = arr[2];
    ArrangeTrio(res);
    
    GetTrio (arr,M,res);
 
    std::cout<< '\n'<< res->min<<'\t'<<res->middle<<'\t'<<res->max;
 
    delete []arr;
    delete res;
 
    std::cin.get();
    return 0;
}
0
14.07.2014, 15:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2014, 15:32

Найти три максимальных аэлемента одномерного массива
нужна помощь. просто не могу понять в чём ошибка. + нужно ещё ввести сам массив...

Найти два минимальных элемента одномерного массива
Доброе время суток, подскажите, как найти 2 самых маленьких элемента! За ранее...

В однородном массиве вещественных чисел три наименьших элемента заменить нулями.
В однородном массиве вещественных чисел три наименьших элемента заменить...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru