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

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

Войти
Регистрация
Восстановить пароль
 
User-808
0 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 5
#1

Если последовательность знакопеременна, то вывести максимум, в противном случае минимум - C++

23.06.2014, 21:40. Просмотров 287. Ответов 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<iostream>
using namespace std;
void main()
{
    setlocale(0,"");
    int m;  //Переменная для текущего значения
    int M1;//Максимум
    int M2;//Минимум    
    cout<<"\nВведите число =        ";
    cin>>m;
    if(m == 0)
    {
        cout<<"Не введено ни одного элемента"<<endl;
        system("pause");
        return;
    }
    M1 = m; 
    M2 = m;
    bool sost = true;
    while(sost)
    {
     cout<<"\nВведите число =       ";
     cin>>m;
     if(m == 0) break;
    
     if(m<M2)M2=m;
     if(m<0)sost=false;
    }
    while(!sost)
    {cout<<"\nВведите число =       ";
        cin>>m;
     if(m == 0) break;
     if(m>M1)M1=m;
     }
    if(sost)
        cout<<"Минимальный элемент: "<<M2<<endl;
    if(!sost)
        cout<<"Максимаьный элемент: "<<M1<<endl;
    system("pause");
}
Нужно придумать как изменить, чтоб соблюдалось условие.
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2014, 21:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Если последовательность знакопеременна, то вывести максимум, в противном случае минимум (C++):

Вывести k-ю степень s, если она существует и слово undefined в противном случае. - C++
Пусть имеем строку s и целое число k. Если k - неотрицательно, то k-ой степенью строки s называется строка, которая представляет из себя...

Вывести на консоль true, если точка принадлежит заданным областям, и false - в противном случае - C++
Составить программу которая печатает true если точка с координатами (x,y) принадлежит заданным закрашенным (заштрихованным) областям и...

Если цифра младшего разряда четная, то вывести все четные цифры числа, в противном случае – все нечетные - C++
Дано n-значное число longInt. Написать программу. Если цифра младшего разряда четная, то вывести все четные цифры числа, в противном...

Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число - C++
Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число. ...

Напечатать “Yes”, если массив симметричен, и “No” в противном случае - C++
10.Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, и печатает “Yes”, если массив симметричен, и “No” в...

Составить программу, выдающую 1, если заданное число - простое и 0 - в противном случае - C++
Необходимо составить программу, выдающую 1, если заданное число - простое и 0 - в противном случае. Число называется простым, если он...

6
BatonPro
30 / 30 / 24
Регистрация: 21.06.2014
Сообщений: 81
23.06.2014, 22:12 #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
33
34
35
36
37
38
39
40
41
#include<iostream>
using namespace std;
void main()
{
    setlocale(0,"");
    int m;  //Переменная для текущего значения
    int M1;//Максимум
    int M2;//Минимум    
   int prevM;
    cout<<"\nВведите число =        ";
    cin>>m;
    if(m == 0)
    {
        cout<<"Не введено ни одного элемента"<<endl;
        system("pause");
        return;
    }
    M1 = m; 
    M2 = m;
    prevM=m;
    bool sost = true;
    
    while(m!=0)
    {
     cout<<"\nВведите число =       ";
     cin>>m;
     if(m == 0) break;
    
     if(m<M2)M2=m;
     if(m>M1)M1=m;
     if(m<0 && prevM<0)sost=false;
     if(m>0 && prevM>0)sost=false;
     prevM=m;
    }
    
    if(!sost)
        cout<<"Минимальный элемент: "<<M2<<endl;
    if(sost)
        cout<<"Максимаьный элемент: "<<M1<<endl;
    system("pause");
}
1
User-808
0 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 5
23.06.2014, 22:51  [ТС] #3
спасибо,но все равно.при вводе всех отрицательных чисел и 1 положительной выводит минимум, вместо максимум

Добавлено через 8 минут
BatonPro, спасибо,но все равно.при вводе всех отрицательных чисел и 1 положительной выводит минимум, вместо максимум
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,186
23.06.2014, 23:07 #4
Цитата Сообщение от User-808 Посмотреть сообщение
при вводе всех отрицательных чисел и 1 положительной выводит минимум, вместо максимум
ну и все правильно
Цитата Сообщение от User-808 Посмотреть сообщение
Если пос-ть знакопеременна, то вывести максимум,в другом случае минимум.
если все отрицательные и одна 1 это не знакопеременная последовательность
0
BatonPro
30 / 30 / 24
Регистрация: 21.06.2014
Сообщений: 81
23.06.2014, 23:10 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Перепутал знакопеременную со знакочередующейся.
Вот правильный:
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
#include<iostream>
using namespace std;
void main()
{
    setlocale(0,"");
    int m;  //Переменная для текущего значения
    int M1;//Максимум
    int M2;//Минимум    
   bool sign = false;
    cout<<"\nВведите число =        ";
    cin>>m;
    if(m == 0)
    {
        cout<<"Не введено ни одного элемента"<<endl;
        system("pause");
        return;
    }
    M1 = m; 
    M2 = m;
    if(m<0) sign=false;
    if(m>0) sign=true;
    
    bool sost = false;
    
    while(m!=0)
    {
     cout<<"\nВведите число =       ";
     cin>>m;
     if(m == 0) break;
    
     if(m<M2)M2=m;
     if(m>M1)M1=m;
     if(m<0 && sign)sost=true;
     if(m>0 && !sign)sost=true;
    
    }
    
    if(!sost)
        cout<<"Минимальный элемент: "<<M2<<endl;
    if(sost)
        cout<<"Максимаьный элемент: "<<M1<<endl;
    system("pause");
}
1
Sapendo
5 / 5 / 3
Регистрация: 13.05.2014
Сообщений: 130
23.06.2014, 23:11 #6
Цитата Сообщение от User-808 Посмотреть сообщение
спасибо,но все равно.при вводе всех отрицательных чисел и 1 положительной выводит минимум, вместо максимум
Так а тебе что надо??? Максимум - если знак меняется с + на -!!!! Если ты вводишь много значений с -, а потом с +, то это последовательность не знакопеременна!!!!
0
User-808
0 / 0 / 0
Регистрация: 23.06.2014
Сообщений: 5
23.06.2014, 23:21  [ТС] #7
Извиняюсь, перепутал, большое спасибо)
0
23.06.2014, 23:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2014, 23:21
Привет! Вот еще темы с ответами:

Массив: Переменной Х присвоить 1, если элементы массива упорядочены по возрастанию, 0 - в противном случае. - C++
Переменной Х присвоить 1, если элементы массива В(40) образуют возрастающую последовательность и значение 0 в противном случае.

Даны три числа a, b, c. Если b < 0 найти сумму чисел a и c, в противном случае - их разницу - C++
14. Нужно написать программу. Даны три действительных числа а , в , с. Если в &lt;0 , то найдите сумму чисел а и с, в противном случае -...

Если первое из введенных с клавиатуры чисел А и В равно 5, то вычислить А+В, в противном случае получить А/В. - C++
Ребят спасайте срочно,завтра зачёт автоматом должен получить,а тут мне подкинули задание на С++,в то время как я изучал Паскаль.Вот...

Выведите YES, если число N является точной степенью двойки, или NO в противном случае.(Рекурсия) - C++
Правильно ли мое решение? Есть ли другие решения? Заранее спасибо. #include &lt;iostream&gt; using namespace std;


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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