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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
#1

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

06.12.2012, 14:32. Просмотров 370. Ответов 6

Сама задача полностью

В потоке ввода данных записана последовательность целых чисел, последнее из которых 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++
Помогите пожалуйста сделать так, чтобы эта программа брала min c нечетных, а max с четных #include&lt;iostream&gt; using namespace std; int...

Найти сумму Максимум(среди чётных)+Минимум(среди нечётных) - C++
дана последовательность действительных чисел {a1,a2,...an}. Найти max{a2,a4...a2k}+min{a1,a3,...a2k-1} C++ и нужно сделать так чтобы...

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

Вывести максимальные значения среди двумерного массива, и найти среди них минимум - C++
#include &lt;iostream&gt; using namespace std; int main(){ int const n=3; int i,j,max1,max2,max3; int m={{1,2,3}, ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 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
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 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
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
06.12.2012, 15:26 #6
while это слово из английского языка, означающее "пока", "в то время как".
while(run) в языке Си означает "Пока переменная run не равна нулю". Здесь run выступает условием продолжения цикла. Оно обнуляется, когда вводится 0 с клавиатуры.
Я так сделал, потому что решил не делать цикла
C
1
2
do{
}while(x!=0)
Но такой цикл был бы неплохой альтернативой.
akaDem
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
06.12.2012, 15:29  [ТС] #7
Спасибо, за оперативный ответ
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2012, 15:29
Привет! Вот еще темы с ответами:

Найти максимум и минимум среди не выпавших чисел - C++
Всем привет. Возник вопрос как найти максимум и минимум среди не выпавших чисел. using namespace std; void showNotFind(int...

Найти минимум среди максимальных элементов столбцов матрицы - C++
вот код для переделки // Поиск максимального элемента среди минимальных int max = a; // Это будущий максимум, пока что равен...

Найти минимум среди максимальных элементов столбцов матрицы - C++
помогите выдаёт ошибку после компиляции вот код для переделки есть массив xнау а int min = a; for(int i = 1; i &lt; =n; ++i) { int...

Найти минимум среди сумм элементов диагоналей, параллельных главной - C++
Оформить каждую задачу в виде функции. Все необходимые данные для функций должны передаваться в качестве параметров. Использование...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.12.2012, 15:29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru