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

Обнулить элементы массива, расположенные между его минимальным и максимальным элементам - C++

Восстановить пароль Регистрация
 
Oseg
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 18
06.06.2014, 17:46     Обнулить элементы массива, расположенные между его минимальным и максимальным элементам #1
Дан массив размера N. Обнулить элементы массива, расположен-
ные между его минимальным и максимальным элементами (не включая
минимальный и максимальный элементы).
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2014, 17:46     Обнулить элементы массива, расположенные между его минимальным и максимальным элементам
Посмотрите здесь:

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами C++
Как переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами C++
Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами C++
C++ Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и максимальным элементами
C++ Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tchikh
50 / 70 / 11
Регистрация: 23.01.2013
Сообщений: 253
06.06.2014, 18:17     Обнулить элементы массива, расположенные между его минимальным и максимальным элементам #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
#include<cstdio>
#include<cmath>
 
using namespace std;
 
int n, min1, max1, ind_min, ind_max, a[100000];
 
int main()
{
  scanf("%d", &n);
  min1 = 1e9;
  max1 = -1e9;
  for (int i = 0; i < n; i++)
  {
    scanf("%d", &a[i]);
    if (a[i] > max1)
    {
      max1 = a[i];
      ind_max = i;
    }
    if (a[i] < min1)
    {
      min1 = a[i];
      ind_min = i;
    }
  }
  for (int i = min(ind_min, ind_max) + 1; i < max(ind_min, ind_max); i++)
    a[i] = 0;
}
SatanaXIII
06.06.2014, 18:57
  #3
 Комментарий модератора 
Oseg, называйте пожалуйста темы так, чтобы название отражало суть задачи.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
06.06.2014, 21:39     Обнулить элементы массива, расположенные между его минимальным и максимальным элементам #4
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
#include <algorithm>
#include <iostream>
#include <random>
#include <vector>
 
int main()
  {
  std::random_device rd;
  std::mt19937 gen(rd());
  std::uniform_real_distribution<> dis(-100000, 100000);
  size_t N;
  std::cout << "Size: ";
  std::cin >> N;
  std::vector<double> vector;
  vector.resize(N);
  for (size_t i = 0; i < N; ++i)
    std::cout << (vector[i] = dis(gen)) << " ";
  std::cout << std::endl;
  auto minmax = std::minmax_element(vector.begin(), vector.end());
  minmax.first < minmax.second ? std::fill(minmax.first++, minmax.second, 0) : std::fill(minmax.second++, minmax.first, 0); 
  for (const auto& element : vector)
    std::cout << element << " ";
  std::cin.get();
  std::cin.get();
  return 0;
  }
Yandex
Объявления
06.06.2014, 21:39     Обнулить элементы массива, расположенные между его минимальным и максимальным элементам
Ответ Создать тему
Опции темы

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