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

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

Войти
Регистрация
Восстановить пароль
 
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
#1

Задачка из книги Страуструпа на поиск минимального и максимального введенного числа - C++

16.11.2012, 18:16. Просмотров 1490. Ответов 12
Метки нет (Все метки)

Здравствуйте могли бы вы мне помочь в решении задачи. Вот собственно само условие.

Условие:
Теперь измените тело цикла так, чтобы он считывал только одно число типа
double за один проход. Определите две переменные, чтобы определить, какое из
них имеет меньшее значение, а какое — большее среди всех ранее введенных
значений. За каждый проход цикла выводите на экран одно введенное число.
Если оно окажется наименьшим среди ранее введенных, выведите на экран
строку "Наименьшее среди ранее введенных". Если оно окажется наибольшим
среди ранее введенных, выведите на экран строку "Наибольшее среди
ранее введенных".


Вот что у меня получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "std_lib_facilities.h"
int main()
{
    setlocale( LC_ALL,"Russian" );
    double a = 0;
    while(cin >> a)/*Теперь измените тело цикла так, чтобы он считывал только одно число типа 
                                                                                       double за один проход*/
        cout << "Вы ввели число:" << a;/*За каждый проход цикла выводите на экран одно введенное число */
    system("pause");
    return 0;
/*А не сделал я следущее:
1)Определите две переменные, чтобы определить, какое из 
них имеет меньшее значение, а какое — большее среди всех ранее введенных 
значений.
2)Если оно окажется наименьшим среди ранее введенных, выведите на экран 
строку "Наименьшее среди ранее введенных". Если оно окажется наибольшим 
среди ранее введенных, выведите на экран строку "Наибольшее среди 
ранее введенных". (тут наверно if-ами)
*/
}
Добавлено через 55 минут
Форумчане выручайте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 18:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачка из книги Страуструпа на поиск минимального и максимального введенного числа (C++):

Задачка из книги Страуструпа... - C++
Доброго времени суток всем! Заранее благодарен за ответы и, возможные, пути исправления... Итак: &quot;Считайте последовательности чисел...

Задача на поиск минимального\максимального числа - C++
Здравствуйте. Начал учить с++ относительно недавно. Решал задачу на поиск максимального и минимального числа. Вот решение: /*Дано...

Программа определения минимального введенного числа - C++
написать программу определения минимального введенного числа из 10 чисел

Поиск минимального и максимального элементов массива - C++
вот код //--------------------------------------------------------------------------- #include &lt;cmath&gt; #include &lt;iostream&gt; #pragma...

Поиск максимального и минимального элементов массива - C++
добрый вечер! Задано число. Вычислить максимальный показатель, с которым степень этого числа по длине не превысит слова (прога должна...

Поиск максимального и минимального значения в матрице - C++
Подскажите как найти минимальное и максимальное значение в матрице 20 на 20 (я так понял рендомных чисел )но при условии что эти числа не...

12
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
16.11.2012, 18:21 #2
ну так заведите себе двух питомцев, назовите их min и max. Сравнивайте породу с тем, что ввел пользователь. Если порода лучше, чем у max, то меняйте питомца и выводите пользователю сообщение.
с min по аналогии, только меняем и выводим сообщение, если порода min лучше.
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
16.11.2012, 18:23 #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
#include "std_lib_facilities.h"
int main()
{
    setlocale( LC_ALL,"Russian" );
    double a = 0, max = 0, min = 0;
    bool first = true;
    while(cin >> a)/*Теперь измените тело цикла так, чтобы он считывал только одно число типа 
                                                                                       double за один проход*/
   {
        cout << "Вы ввели число:" << a << endl;/*За каждый проход цикла выводите на экран одно введенное число */
        if (first)
        {
            first = false;
            max = a;
            min = a;
        }
        else
        {
             if (a > max)
             {
                   max = a;
                   cout << "Наибольшее из ранее введенных" << endl;
             }
             else if (a < min)
             {
                  min = a;
                  cout << "Наименьшее из ранее введенных" << endl;
             }
        }
    system("pause");
    return 0;
}
Хотя в идеале конечно, сравнение стоит организовать по другому, ибо double.
0
Croessmah
16.11.2012, 18:25
  #4

Не по теме:

Цитата Сообщение от ForEveR Посмотреть сообщение
Зачем вы книгу читаете, если спрашиваете на форуме? Смысл в таком обучении? Задание элементарно. В книжке все описано прозрачно.
РРР а я хотел посмотреть, как мой способ будет решен автором

0
extenup
54 / 54 / 3
Регистрация: 12.11.2011
Сообщений: 109
16.11.2012, 18:27 #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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale( LC_ALL,"Russian" );
    
    double a = 0;
    while(cin >> a)
    {
        static double min = a;
        static double max = a;
 
        if(a < min) min = a;
        if(a > max) max = a;
 
        cout << "Input Number:\t" << a << endl;
        cout << "Min Val:\t" << min << endl;
        cout << "Max Val:\t" << max << endl;
        cout << "============================" << endl;
    }      
    
    system("pause");
    return 0;
}
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
16.11.2012, 18:28 #6
extenup, Ну статики тут вообще никуда не впились. Локальные переменные функции никто не отменял. + к тому, a не может быть одновременно меньше минимума и больше максимума.
0
extenup
54 / 54 / 3
Регистрация: 12.11.2011
Сообщений: 109
16.11.2012, 18:35 #7
Цитата Сообщение от ForEveR Посмотреть сообщение
extenup, Ну статики тут вообще никуда не впились. Локальные переменные функции никто не отменял. + к тому, a не может быть одновременно меньше минимума и больше максимума.
Не понял замечания.. Всё работает правильно + код короче.
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
16.11.2012, 18:36 #8
Цитата Сообщение от extenup Посмотреть сообщение
Всё работает правильно + код короче.
Это не есть показатели.
0
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
16.11.2012, 18:37  [ТС] #9
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


РРР а я хотел посмотреть, как мой способ будет решен автором

Да как элементарно если я ниче не понял ппц обидно даже(были и сложнее задачи их легко делал а с этой заморочки кие то)
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
16.11.2012, 18:40 #10
Вы просто не поняли суть задания, вот и все.
1
barman_97
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 2
24.03.2016, 17:10 #11
В книге Б.Страуструпа, перед тем как перейти к задачам, объясняется тема "Вектор". Т.е. он хочет чтобы задача была решена с применением вектора.
0
fenixzm
0 / 0 / 0
Регистрация: 28.06.2015
Сообщений: 4
27.08.2017, 21:31 #12
Тоже учусь по Страусу. Вот решил. Может кому полезно будет решение с учетом первых 5 заданий. +применение массива(вектора в С++).
Сразу напишу, пожалуй. atof(a.c_str()) - перевод типа string в тип double.
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
int main()
    {
        string a = "";
        vector<string> i;
        vector<double> p;
        double k_min = 1000, k_max = -1000;
        while (cin >> a)
        {   
            if (a == "|")
                break;
            i.push_back(a);
            cout << a << '\n';
            p.push_back(atof(a.c_str()));
            system("cls");
            for (int j = 0; j < i.size(); j++)
                {
                    if (k_min > p[j])
                    {
                        k_min = p[j];
                        cout << k_min << " - min chislo.\n";
                    }
                    if (k_max < p[j])
                    {
                        k_max = p[j];
                        cout << k_max << " - max chislo.\n";
                    }
                }   
            system("pause");
            system("cls");
        }   
        system("pause");
        return 0;
    }
0
LazySlacker
84 / 66 / 13
Регистрация: 29.08.2017
Сообщений: 188
29.08.2017, 20:20 #13
А вот в C# есть такая классная штука как nullable-типы. Я попытался их сымитировать на C++, наверное получилось очень плохо, я C++ практически не знаю. Буду рад, если кто-то скажет, как сделать то же самое красиво и идеоматично.

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
#include <iostream>
using namespace std;
 
struct DoubleQ
{
    double Value;
    bool HasValue;
};
 
int main() {
    DoubleQ min = { 0, false };
    DoubleQ max = { 0, false };
    double cur;
    while (cin >> cur)
    {
        if (!min.HasValue || cur < min.Value)
        {
            cout << cur << " is new minimum!" << endl;
            min = { cur, true };
        }
        if (!max.HasValue || cur > max.Value)
        {
            cout << cur << " is new maximum!" << endl;
            max = { cur, true };
        }
    }
    cout << "Minimum: " << min.Value << endl;
    cout << "Maximum: " << max.Value << endl;
    return 0;
}
0
29.08.2017, 20:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2017, 20:20
Привет! Вот еще темы с ответами:

Поиск максимального и минимального элементов массива - C++
Народ спасайте! Как сделать так чтобы человек вводит сколько элементов массива, вводит их, а ему пишут максимальное и минимальное! И...

Поиск минимального и максимального среди неповторяющихся - C++
Нужно найти количество повторяющихся элементов и максимальный и минимальный среди неповторяющихся. Количество повторяющихся считает, но...

Поиск минимального и максимального элемента в матрице - C++
Помогите в моем коде реализовать поиск минимального и максимального элемента функция minmax #ifndef _LIBRARYMATRIX_H_ ...

Поиск максимального и минимального элементов в матрице - C++
В квадратной матрице определить максимальный и минимальный элементы. Если таких элементов несколько, то максимальный определяется по...


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

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

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