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

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

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

Найти третий по минимальности элемент массива - C++

25.10.2011, 09:59. Просмотров 380. Ответов 7
Метки нет (Все метки)

Задан массив из 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
#include <cstdlib>
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <math.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
int n;
printf("vvedite  N");
scanf("%d",&n);
int x[n],i,a,min,b,max;
for(i=1;i<=n;i++)
{
 x[i]=rand()%50;
}
for(i=1;i<=n;i++)
{
 printf("%3d",x[i]);
    }
 printf("\n");
 
 for(i=2;i<=n;i++)
 {
    if(min>x[i])
       {
       min=x[i];         
       }
  }
printf("%d",min);
          
          
          
                  
                  
    system("PAUSE");
    return EXIT_SUCCESS;
}
что дальше?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2011, 09:59     Найти третий по минимальности элемент массива
Посмотрите здесь:

Минимальный элемент одномерного массива A заменить на третий отрицательный элемент - C++
Минимальный элемент одномерного массива A заменить на третий отрицательный элемент. Третий отрицательный искать от минимального элемента.

Двумерные массивы. Найти новый одномерный массив, максимальный элемент, заменить третий элемент - C++
Помогите пожалуйста написать хотя бы одну из этих программ: Дана матрица А(5,5) 1.Найти новый одномерный массив С из сумм элементов...

Увеличить каждый третий элемент массива в 2 раза - C++
Напишите программу, которая увеличит каждый третий элемент массива в 2 раза. Ввод данных в одномерный целочисленный массив осуществляет...

Заменить третий положительный элемент массива на максимальный - C++
Здравствуйте подскажите как заменить третий позитивный элемент массива на максимальный #include &lt;vcl.h&gt; #pragma hdrstop #pragma...

Третий положительный элемент поменять местами с последним элементом массива - C++
Третий положительный элемент поменять местами с последним элементом массива. Помогите, буду очень благодарен.

Третий положительный элемент массива заменить средним арифметическим положительных элементов - C++
Третий положительный элемент заменить среднеарифметическим значением положительных всех элементов . Сумму элементов массива ,...

Дан массив А(12). Каждый третий элемент массива заменить суммой двух предшествующих. - C++
1)Дан массив А(12). Каждый третий элемент массива заменить суммой двух предшествующих. Нужно написать в С++ , но не понимаю как...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pincet
1236 / 806 / 85
Регистрация: 23.07.2010
Сообщений: 4,109
25.10.2011, 10:19     Найти третий по минимальности элемент массива #2
Я бы сортирнул массив, затем перебирал бы от первого к последнему, исключая повторы
dimcoder
Полярный
455 / 428 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
25.10.2011, 12:49     Найти третий по минимальности элемент массива #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
#include <iostream.h>
#include <conio.h>
 
main ()
{
  int a[100];
  int n;
 
  cin >> n;
 
  for (int i = 0; i < n; i++)
    cin >> a[i];
  for (i = 0; i < n; i++)
     for (int j = i+1; j < n; j++)
     if (a[i] > a[j])
     {
    int k = a[i];
    a[i] = a[j];
    a[j] = k;
     }
 
  int k = 1;
  i = 2;
 
  while ((i < n) && (k < 3))
  {
      if (!(a[i] == a[i-1]))
     k += 1;
      i += 1;
  }
 
  cout << a[i-2] << endl << endl;
 
  getch();
 
  return 0;
}
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
25.10.2011, 13:12     Найти третий по минимальности элемент массива #4
Цитата Сообщение от pincet Посмотреть сообщение
Я бы сортирнул массив, затем перебирал бы от первого к последнему, исключая повторы
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <iterator>
#include <set>
 
int main(){
    int arr[]{-3, 6, -3, 8, 0, 2, 0};
    std::set<int> setArr(arr, arr + sizeof(arr) / sizeof(*arr));
    std::set<int>::const_iterator it = setArr.begin();
    std::advance(it, 2);
    std::cout << *it << std::endl;
    return 0;
}
pincet
1236 / 806 / 85
Регистрация: 23.07.2010
Сообщений: 4,109
25.10.2011, 15:27     Найти третий по минимальности элемент массива #5
Ну, человек не заикался про контейнеры

Добавлено через 14 секунд
А так, да.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
25.10.2011, 16:23     Найти третий по минимальности элемент массива #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от DimitriyL Посмотреть сообщение
Задан массив из 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
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <time.h>
 
#define N           10
#define RANGE_MIN -100 
#define RANGE_MAX  100
#define NMINS        3
 
int main()
{
    int arr[N], mins[NMINS];
    int i, j, t;
 
    for (i = 0; i < NMINS; i++)
        mins[i] = INT_MAX;
    srand(time(NULL));
    printf("array:\n");
    for (i = 0; i < N; i++) {
        printf("%d ", 
            arr[i] = RANGE_MIN + rand() % (RANGE_MAX-RANGE_MIN+1));
        for (j = 0; j < NMINS; j++)
            if (arr[i] < mins[j]) {
                for (t = NMINS - 1; t > j; t--)
                    mins[t] = mins[t - 1];
                mins[j] = arr[i];
                break;
            }
    }
    printf("\n\nthe 3rd minimum element is %d\n", mins[NMINS-1]);
    return 0;
}
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.10.2011, 16:40     Найти третий по минимальности элемент массива #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Так как-то.
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 <stdio.h>
#include <limits.h>
#include <iso646.h>
 
int min_after( int *, int, int );
 
int main()
{
    int n = 0;
    
    while( puts("Enter size"), scanf("%d", &n) && n < 3 );
    
    puts("Enter array");
    int arr[n];
    for (int i = 0; i < n; ++i)
        scanf("%d", &arr[i]);
    
    int min_first  = min_after( arr, n, INT_MIN );
    int min_second = min_after( arr, n, min_first );
    int min_third  = min_after( arr, n, min_second );
    
    printf("answer: %d\n", min_third);
}
 
int min_after( int * arr, int size, int x )
{
    int res = INT_MAX;
    for ( int i = 0; i < size; ++i)
        if ( arr[i] > x and arr[i] < res )
            res = arr[i];
    return res;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 08:36     Найти третий по минимальности элемент массива
Еще ссылки по теме:

Сожмите массив, выбросив каждый третий его элемент, без использования дополнительного массива - C++
3. Дан массив из n элементов. Сожмите массив, выбросив каждый третий его элемент, без использования дополнительного массива. Выведите на...

Даны два массива одного размера. Получить третий массив, каждый элемент которого... - C++
Даны два массива одного размера. Получить третий массив, каждый элемент которого равен: а) сумме элементов с тем же номером в заданных...

Получите третий массив по правилу: каждый элемент нового массива равен сумме квадратов соответствующих элементов исходных - C++
два массива, по 14 элементов в каждом, с помощью датчика случайных чисел. Получите третий массив по правилу: каждый элемент нового...

Получить третий массив той же размерности, каждый элемент которого равен большему из соответствующих элементов данного массива - C++
Плиз, помогите решить задачу!!! Скоро сессия, не успеваю решить все задачи!!! Выручайте!!! Даны два целочисленных массива одинаковой...

Даны два двухмерных массива одинаковых размеров. Создать третий массив такого же размера, каждый элемент которого равен 100 - C++
Даны два двухмерных массива одинаковых размеров. Создать третий массив такого же размера, каждый элемент которого равен 100, если...


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

Или воспользуйтесь поиском по форуму:
DimitriyL
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 16
27.10.2011, 08:36  [ТС]     Найти третий по минимальности элемент массива #8
спасибо
Yandex
Объявления
27.10.2011, 08:36     Найти третий по минимальности элемент массива
Ответ Создать тему
Опции темы

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