С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 3
1

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

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

Author24 — интернет-сервис помощи студентам
1 Найти 3 наименьших элемента произвольного одномерного массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.07.2014, 23:59
Ответы с готовыми решениями:

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

Найти 3 наименьших элемента одномерного массива A из N элементов
На языке VBA написать программу - найти 3 наименьших элемента одномерного массива A из N элементов.

Найти 3 наименьших элемента одномерного массива A из N элементов
найти 3 наименьших элемента одномерного массива A из N элементов. найти могу один, а как...

Найти три наименьших элемента массива
Задача. Найти три наименьших элемента массива:Z={4;-2;17;8;-3;7;0;1;5;-12;-11;-4;9} и указать их...

6
Неэпический
18108 / 10695 / 2062
Регистрация: 27.09.2012
Сообщений: 26,928
Записей в блоге: 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
Почетный модератор
Эксперт С++
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
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
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32992 / 21298 / 8180
Регистрация: 22.10.2011
Сообщений: 36,593
Записей в блоге: 8
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
Почетный модератор
Эксперт С++
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
14.07.2014, 13:09 6
Тубропаскаль не знать о такая директиве:
Цитата Сообщение от UI Посмотреть сообщение
{$mode objfpc}


Добавлено через 66 секунд
Цитата Сообщение от UI Посмотреть сообщение
хотелось показать, как грубо выглядит код на Паскале в сравнении с С++?
Откуда такие мысли вообще? Телепат все ж пробудился, я гляжу?
0
Заблокирован
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.07.2014, 15:32
Помогаю со студенческими работами здесь

Найти три наименьших элемента массива
Найти три наименьших элемента массива:Z={4;-2;17;8;-3;7;0;1;5;-12;-11;-4;9} и указать их индексы...

Найти три наименьших элемента массива
Найти три наименьших элемента массива:Z={4;-2;17;8;-3;7;0;1;5;-12;-11;-4;9} и указать их индексы ...

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

Найти три наибольших элемента одномерного массива
Вот задание которые не понятно &quot;Найти три наибольших элемента одномерного массива X(20).&quot;

Найти три наибольших элемента одномерного массива X(20)
Найти три наибольших элемента одномерного массива X(20) Мучаюсь уже очень долгое время. Дописал,...

Переставить первые три и последние три элемента одномерного динамического массива
Дан одномерный массив из N элементов. Переставить первые три и последние три элемента, сохранив...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru