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

Определить какой элемент в массиве, расположен раньше : наибольший или наименьший - C++

Восстановить пароль Регистрация
 
 
malQmjke
Сообщений: n/a
16.01.2014, 10:25     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #1
Народ нужна помощь с C++ кто может помочь помогите.

Условия:
Определить какой элемент в массиве, расположен раньше : наибольший или наименьший
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2014, 10:25     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший
Посмотрите здесь:

В массиве найти наибольший и наименьший элемент C++
Найти сумму элементов столбца, в котором расположен наименьший элемент C++
C++ Массив: Найти сумму элементов строки, в которой расположен наибольший элемент.
Определить, какой элемент двумерного динамического массива больше: расположен в левом верхнем или в верхнем правом углу C++
Определить наибольший элемент в двумерном массиве C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
16.01.2014, 10:37     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #2
Цитата Сообщение от malQmjke Посмотреть сообщение
Народ нужна помощь с C++ кто может помочь помогите.

Условия:
Определить какой элемент в массиве, расположен раньше : наибольший или наименьший
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <vector>
#include <algorithm>  
 
using namespace std;
 
int main() {
  int arr[4] = {1, 2, 3, 4};
 
  vector<int> numbers(arr, arr+4);
  
  // Получаем максимальный элемент
  vector<int>::const_iterator max= max_element( numbers.begin(), numbers.end() );
  vector<int>::const_iterator min= min_element( numbers.begin(), numbers.end() );
 
  cout << "Наибольший элемент " << *max << endl;
  cout << "Индекс этого элемента " << max - numbers.begin() << endl;
  cout << "Наименьший элемент " << *min<< endl;
  cout << "Индекс этого элемента " << min- numbers.begin() << endl;
}
Не проверял, но как то так
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.01.2014, 10:41     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <ctime>
 
namespace array
{
  int getMaxIndex(int * arr, const size_t SIZE)
  {
      int index = 0;
      int max = arr[0];
      for(size_t i = 0; i < SIZE; ++i)
         if(max < arr[i])
         {
           max = arr[i];
           index = i;     
         }
      return index;
  }
  
  int getMinIndex(int * arr, const size_t SIZE)
  {
      int index = 0;
      int min = arr[0];
      for(size_t i = 0; i < SIZE; ++i)
         if(min > arr[i])
         {
           min = arr[i];
           index = i;     
         }
      return index;
  }
}
 
 
int main()
{
  size_t SIZE = 0;
  std::cout << "Input size array : "; std::cin >> SIZE;
  int arr[SIZE];
  
  for(size_t i = 0; i < SIZE; ++i)
  {
    std::cout << "Input element : "; std::cin >> arr[i];
  }
  
  int maxIdx = array::getMaxIndex(arr, SIZE);
  int minIdx = array::getMinIndex(arr, SIZE);
  
  if(maxIdx < minIdx)
     std::cout << "max element is first" << std::endl;
  else
     std::cout << "max element is last" << std::endl;
      
  system("PAUSE");
  return 0;
}
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
16.01.2014, 11:56     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
   std::vector<int> v {1,5,6,7,3,9,2};
   auto minmax = std::minmax_element(v.begin(), v.end());
   std::cout << "Min element comes" << (minmax.first < minmax.second ? " before " : " after ")
             << "the max element\n";
 
   return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
16.01.2014, 13:01     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #5
Цитата Сообщение от egor2116 Посмотреть сообщение
int arr[SIZE];
SIZE не константа -> память надо выделять динамически

Добавлено через 5 минут
DiffEreD, в какой среде это должно компилироваться (VS 2008 сильно ругается)?
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
16.01.2014, 13:04     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #6
У меня g++ 4.8.2 + Qt Creator
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.01.2014, 13:54     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #7
SIZE не константа -> память надо выделять динамически
да неужели, это кто сказал ?
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
16.01.2014, 13:58     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #8
Цитата Сообщение от egor2116 Посмотреть сообщение
да неужели, это кто сказал ?
ну даже если и я, что-то изменится? тем более, что я согласен с этим
Миниатюры
Определить какой элемент в массиве, расположен раньше : наибольший или наименьший  
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.01.2014, 14:00     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #9
ну даже если и я, что-то изменится? тем более, что я согласен с этим
так не будет работать или так ... ?
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
16.01.2014, 14:01     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #10
Цитата Сообщение от egor2116 Посмотреть сообщение
так не будет работать или так ... ?
а Вы проверяете код прежде чем его выложить?
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.01.2014, 14:02     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #11
а Вы проверяете код прежде чем его выложить?
минуту
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.01.2014, 14:06     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #12
а Вы проверяете код прежде чем его выложить?
вот
Миниатюры
Определить какой элемент в массиве, расположен раньше : наибольший или наименьший  
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
16.01.2014, 14:09     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #13
это не есть нормально, даже если Dev это принимает(понятия не имею как)..
память действительно должна выделяться динамически или же SIZE должна быть константой
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.01.2014, 14:11     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #14
память действительно должна выделяться динамически или же SIZE должна быть константой
Почему ?
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
16.01.2014, 14:17     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #15
при объявлении статического массива его размером должна являться числовая константа, а не просто переменная..
если память под массив нужно выделить уже во время выполнения программы, то для этого используется динамическое выделение памяти(динамический массив), память под который выделяется:
C++
1
2
3
size_t SIZE;
std::cin >> SIZE;
int *array = new int [SIZE];
и после его использования, очищается:
C++
1
delete [] array;
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.01.2014, 14:20     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #16
при объявлении статического массива его размером должна являться числовая константа, а не просто переменная..
если память под массив нужно выделить уже во время выполнения программы, то для этого используется динамическое выделение памяти(динамический массив), память под который выделяется:
Это я прекрасно понимаю.
Вы не ответили почему нужно делать именно так, я понимаю если бы это было синтаксически не корректно, но Dev это спокойно пропускает, вопрос может в том, что не красиво ? Поясните пожалуйста.
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
16.01.2014, 14:21     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #17
Что же вам примеры с STL не нравятся?
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.01.2014, 14:23     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #18
интересно у автора темы на Qt Creator`е компилируется ?
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,774
16.01.2014, 14:25     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #19
egor2116, VS2012:
Кликните здесь для просмотра всего текста

---- Построение начато: проект: C+onsoleApplication8, Конфигурация: Debug Win32 ------
1> C+onsoleApplication8.cpp
1>c:\users\ev_hyp\documents\visual studio 2012\projects\c+onsoleapplication8\c+onsoleapplication8\c+onsoleapplication8.cpp(38): error C2057: требуется константное выражение
1>c:\users\ev_hyp\documents\visual studio 2012\projects\c+onsoleapplication8\c+onsoleapplication8\c+onsoleapplication8.cpp(38): error C2466: невозможно выделить память для массива постоянного нулевого размера
1>c:\users\ev_hyp\documents\visual studio 2012\projects\c+onsoleapplication8\c+onsoleapplication8\c+onsoleapplication8.cpp(38): error C2133: arr: неизвестный размер
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2014, 14:25     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший
Еще ссылки по теме:

C++ Наибольший и наименьший элемент массива
C++ В одномерном массиве найти наибольший элемент из эл-тов, имеющий четный номер.Определить, является ли он единственным.
C++ Поменять наибольший и наименьший элемент последовательности местами

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

Или воспользуйтесь поиском по форуму:
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
16.01.2014, 14:25     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший #20
Цитата Сообщение от egor2116 Посмотреть сообщение
я понимаю если бы это было синтаксически не корректно, но Dev это спокойно пропускает
это и есть синтаксически не корректно и я не понимаю, почему Dev позволяет это делать..
я выше выложил скриншот со своей 2013 VS..там видно, что arr[SIZE]; подчеркнуто и в списке ошибок просит константное выражение
Yandex
Объявления
16.01.2014, 14:25     Определить какой элемент в массиве, расположен раньше : наибольший или наименьший
Ответ Создать тему
Опции темы

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