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

найти два максимальных значения в массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить количество сочетаний http://www.cyberforum.ru/cpp-beginners/thread672617.html
Здравствуйте,помогите написать программу на c++, вот сам текст задания: "Количество сочетаний из N элементов по M (N ≥ 0, 0 ≤ M ≤ N) вычисляется по формуле Cmn=N!/M!(N-M)! Для заданных...
C++ Проблемка с скачиванием не маленьких файлов в цикле Всем привет) Пишу софтину на с++, вкратце, что она делает: 1) Берет из файла links.txt ссылки, на которые нужно перейти. 2) Берет из файла string.txt строчку (текст), что нужно найти. 3) В цикле... http://www.cyberforum.ru/cpp-beginners/thread672612.html
C++ Вычислить сумму элементов матрицы в заштрихованных ячейках, показанных на рисунке
Вычислить сумму заштрихованных элементов матрицы показанных на рисунке.
Структура C++
Не работает функция определяющая находится точка в шаре или нет #include <conio.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <math.h> #include <locale.h> struct...
C++ Описать класс автомобиль http://www.cyberforum.ru/cpp-beginners/thread672524.html
помогите создать класс любой можно про автомобиль,мяч,прямоугольник и тд...,чтобы были конструктор,диструктор,продемонстрировать работу.. плиз срочно надо
C++ Идентификатор clrscr не определен #include <stdio.h> /*Включение в текст программы*/ #include <conio.h> /*определений и описаний функций*/ #include <string.h> /*для работы с консолью, строками*/ #include <math.h> ... подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056

найти два максимальных значения в массиве - C++

16.10.2012, 18:40. Просмотров 2693. Ответов 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
56
57
// Найдти 2 максимальных значения без сортировки массива и
// и дополнительных элементов (контейнеры и доплнительные массивы).
 
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
  cout << "Программа запрашивает у пользователя ввести количество\n"
       << "челочисленных элементов в массиве. Присваивает им\n"
       << "произвольное значение. И находит 2 самых больших элемента.\n"
       << endl;
 
  size_t N = 0;
  cout << "Введите, подалуйста, количество элементов (от 2 до 1000): ";
  cin >> N;
  while (  N < 2 || N > 1000 ) {
    cout << "Количество элементов не входит в диапазон значений.\n";
    cout << "Введите, подалуйста, количество элементов"
     << "(от 2 до 1000): ";
    cin >> N;
  }
 
  // Заполним массив произвольными значениями и отобразим результат
  int arr[N];
  for ( int *p = arr; p != arr + N; ++p ) {
    *p = rand();
    cout << *p << "\n";
  }
  cout << endl;
 
  // найдём максимальное значение
  int *max_val1 = arr;
  for ( int *ptr = arr + 1; ptr != arr + N; ++ptr )
    if ( *max_val1 < *ptr )
      max_val1 = ptr;
 
  //*** ДО ЭТОГО МОМЕНТА РЕЗУЛЬТАТ ПРОГРАММЫ УДОВЛЕТВОРЯЕТ УСЛОВИЕ ***
  // попытка найти наибольшее значение но меньше максимального
  int *max_val2 = arr;
  for ( int *ptr = arr + 1; ptr != arr + N; ++ptr )
    if ( *max_val2 < *ptr ) {
      if ( max_val2 == max_val1 ) continue; /* проверим, не равны ли
                           указатели и если равны,
                           перейти к следующей 
                           итерации цикла for */
      else max_val2 = ptr;
    }
 
  // отбразим результат поиска
  cout << *max_val1 << "\n"
       << *max_val2 << endl;
 
 
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru