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

Найти минимум среди максимумов всех возрастающих подпоследовательностей - C++

Восстановить пароль Регистрация
 
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
06.12.2012, 14:32     Найти минимум среди максимумов всех возрастающих подпоследовательностей #1
Сама задача полностью

В потоке ввода данных записана последовательность целых чисел, последнее из которых 0. Найти минимум среди наибольших чисел всех возрастающих подпоследовательностей


Вот кое-что написал но работает немного некорректно, если минимум находится последней возрастающей подпоследовательности, то программа его не учитывает. Буду благодарен за любой дельный совет.

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
#include<iostream>
using namespace std;
int main()
{
 
    int a,b,min;
 
    cout << "vvedite chislo" <<endl;
    cin >>a,b;
    b=a-1;
   
 
    while (a!=0)
    {
 
        if (b>a && b <min) min=b;
        b=a;
        cin>>a;
 
 
    }
    cout << "Minimum " << min << endl;
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 14:32     Найти минимум среди максимумов всех возрастающих подпоследовательностей
Посмотрите здесь:

C++ найти минимум среди максимальных элементов столбцов матрицы c++
Найти минимум среди максимальных элементов столбцов матрицы C++
Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы C++
Вывести максимальные значения среди двумерного массива, и найти среди них минимум C++
C++ Найти сумму Максимум(среди чётных)+Минимум(среди нечётных)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
06.12.2012, 14:46     Найти минимум среди максимумов всех возрастающих подпоследовательностей #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
30
31
32
#include <stdio.h>
#include <stdlib.h>
int main()
{
   int x;
   int xpre;
   int run;
   int first;
   int min;
   run=first=1;
   while(run){
              scanf("%d", &x);
              if(x==0){
                   run=0;
                   if (xpre<min) min=xpre;
                }
              else{
                   if (first){
                             first=0;
                             min=x;
                             }
                       else{
                             if ((x<xpre)&&(xpre<min))
                             min=xpre;
                       }
                       xpre=x;
                   }
              } 
   printf("minimax is %d", min);
   system("pause");
   return 0;
}
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
06.12.2012, 14:53  [ТС]     Найти минимум среди максимумов всех возрастающих подпоследовательностей #3
Спасибо за попытку помощи, но программа работает некорректо. при вводе последовательности 1 2 3 1 2, программа выводит число 1, а должна выводить число 2
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
06.12.2012, 15:04     Найти минимум среди максимумов всех возрастающих подпоследовательностей #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
27
28
29
30
31
32
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
   int x;
   int xpre;
   int run;
   int first;
   int min;
   run=first=1;
   min=INT_MAX;
   while(run){
              scanf("%d", &x);
              if(x==0){
                   run=0;
                   if (xpre<min) min=xpre;
                }
              else{
                   if (first)first=0;
                       else{
                             if ((x<xpre)&&(xpre<min)){
                             min=xpre;
                             }
                       }
                       xpre=x;
                   }
              } 
   printf("minimax is %d", min);
   system("pause");
   return 0;
}
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
06.12.2012, 15:18  [ТС]     Найти минимум среди максимумов всех возрастающих подпоследовательностей #5
Спасибо, всё работает отлично. но за что отвечает переменная run и что значит выражение while(run)........
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
06.12.2012, 15:26     Найти минимум среди максимумов всех возрастающих подпоследовательностей #6
while это слово из английского языка, означающее "пока", "в то время как".
while(run) в языке Си означает "Пока переменная run не равна нулю". Здесь run выступает условием продолжения цикла. Оно обнуляется, когда вводится 0 с клавиатуры.
Я так сделал, потому что решил не делать цикла
C
1
2
do{
}while(x!=0)
Но такой цикл был бы неплохой альтернативой.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2012, 15:29     Найти минимум среди максимумов всех возрастающих подпоследовательностей
Еще ссылки по теме:

C++ Найдите количество ее возрастающих подпоследовательностей
C++ Среди чисел на четных местах найти максимум,а среди нечетных найти минимум
Матрица с fstream. Найти максимум среди отрицательных и минимум среди положительных элементов C++

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

Или воспользуйтесь поиском по форуму:
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
06.12.2012, 15:29  [ТС]     Найти минимум среди максимумов всех возрастающих подпоследовательностей #7
Спасибо, за оперативный ответ
Yandex
Объявления
06.12.2012, 15:29     Найти минимум среди максимумов всех возрастающих подпоследовательностей
Ответ Создать тему

Метки
возрастающих, максимумов, минимум, Найти, подпоследовательностей, среди
Опции темы

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