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

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

16.01.2014, 10:25. Показов 4982. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ нужна помощь с C++ кто может помочь помогите.

Условия:
Определить какой элемент в массиве, расположен раньше : наибольший или наименьший
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2014, 10:25
Ответы с готовыми решениями:

Определить, какой элемент массива встречается раньше: положительный или отрицательный
Дан A(20). какой элемент встречается раньше: положительный или отрицательный

Определить, какой элемент, максимальный или минимальный, расположен ближе к первому элементу
Определить, какой элемент, максимальный или минимальный, расположен ближе к первому элементу.

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

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

24
101 / 102 / 31
Регистрация: 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;
}
Не проверял, но как то так
1
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
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;
}
0
1458 / 795 / 257
Регистрация: 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;
}
1
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
16.01.2014, 13:01 5
Цитата Сообщение от egor2116 Посмотреть сообщение
int arr[SIZE];
SIZE не константа -> память надо выделять динамически

Добавлено через 5 минут
DiffEreD, в какой среде это должно компилироваться (VS 2008 сильно ругается)?
0
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
16.01.2014, 13:04 6
У меня g++ 4.8.2 + Qt Creator
0
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
16.01.2014, 13:54 7
SIZE не константа -> память надо выделять динамически
да неужели, это кто сказал ?
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
16.01.2014, 13:58 8
Цитата Сообщение от egor2116 Посмотреть сообщение
да неужели, это кто сказал ?
ну даже если и я, что-то изменится? тем более, что я согласен с этим
Миниатюры
Определить какой элемент в массиве, расположен раньше : наибольший или наименьший  
0
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
16.01.2014, 14:00 9
ну даже если и я, что-то изменится? тем более, что я согласен с этим
так не будет работать или так ... ?
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
16.01.2014, 14:01 10
Цитата Сообщение от egor2116 Посмотреть сообщение
так не будет работать или так ... ?
а Вы проверяете код прежде чем его выложить?
0
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
16.01.2014, 14:02 11
а Вы проверяете код прежде чем его выложить?
минуту
0
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
16.01.2014, 14:06 12
а Вы проверяете код прежде чем его выложить?
вот
Миниатюры
Определить какой элемент в массиве, расположен раньше : наибольший или наименьший  
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
16.01.2014, 14:09 13
это не есть нормально, даже если Dev это принимает(понятия не имею как)..
память действительно должна выделяться динамически или же SIZE должна быть константой
0
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
16.01.2014, 14:11 14
память действительно должна выделяться динамически или же SIZE должна быть константой
Почему ?
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
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;
0
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
16.01.2014, 14:20 16
при объявлении статического массива его размером должна являться числовая константа, а не просто переменная..
если память под массив нужно выделить уже во время выполнения программы, то для этого используется динамическое выделение памяти(динамический массив), память под который выделяется:
Это я прекрасно понимаю.
Вы не ответили почему нужно делать именно так, я понимаю если бы это было синтаксически не корректно, но Dev это спокойно пропускает, вопрос может в том, что не красиво ? Поясните пожалуйста.
0
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
16.01.2014, 14:21 17
Что же вам примеры с STL не нравятся?
0
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
16.01.2014, 14:23 18
интересно у автора темы на Qt Creator`е компилируется ?
0
Заблокирован
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 ==========
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
16.01.2014, 14:25 20
Цитата Сообщение от egor2116 Посмотреть сообщение
я понимаю если бы это было синтаксически не корректно, но Dev это спокойно пропускает
это и есть синтаксически не корректно и я не понимаю, почему Dev позволяет это делать..
я выше выложил скриншот со своей 2013 VS..там видно, что arr[SIZE]; подчеркнуто и в списке ошибок просит константное выражение
0
16.01.2014, 14:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2014, 14:25
Помогаю со студенческими работами здесь

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

Ввести матрицу и определить, какой элемент – положительный или отрицательный – расположен ближе к началу матрицы
Напишите пожалуйста решение задачи(( Задача. Ввести матрицу и определить, какой элемент –...

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

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


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

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