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

Сравнение трех чисел ограниченными средствами - C++

Восстановить пароль Регистрация
 
Maxon
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 5
26.08.2012, 23:37     Сравнение трех чисел ограниченными средствами #1
У Дейтела после первой главы, где рассматриваются основы процедурного программирования, есть небольшой блок задач для самостоятельного решения. Среди них - написать программу, запрашивающую у пользователя 3 не одинаковых целых числа, а после выдающей наибольшее и наименьшее из них ( чуть далее следует схожая задача на пять чисел). Пользоваться можно только изученным до этого материалом, а значит, из директив препроцессору - только #include <iostream>, пространство имен только std, а из операторов, функций и.т.д. только cout, cin и if. Блоки кода пока не рассматривались, никаких else, min/max, @@ , for и прочего.

У меня получилось ( точнее, не получилось) так

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
#include <iostream>
 
using namespace std;
 
int main()
 
{
    int x,y,z;
 
    cout <<"Vvedite tri razlichnih chisla\n ";
 
    cin >> x >> y >> z;
 
    if ( x < y < z)
        cout <<"Naim " << x <<"\n" <<"Naib " << z <<"\n";
 
    if ( x < z < y)
        cout <<"Naim " << x <<"\n" <<"Naib " << y <<"\n";
 
    if ( y < x < z)
        cout <<"Naim " << y <<"\n" <<"Naib " << z <<"\n";
 
    if ( y < z < x)
        cout <<"Naim " << y <<"\n" <<"Naib " << x <<"\n";
 
    if ( z < x < y)
        cout <<"Naim " << z <<"\n" <<"Naib " << y <<"\n";
 
    if ( z < y < x)
        cout <<"Naim " << z <<"\n" <<"Naib " << x <<"\n";
 
    system("pause");
    return 0;
}
Это в 2010 визуал экспрессе. Клятвенно обещаю подтянуть хромающую математику. Но все же хотелось бы узнать, решаема ли задача такими ограниченными средствами? Или Дейтел дал здесь задачку "на вырост"?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2012, 23:37     Сравнение трех чисел ограниченными средствами
Посмотрите здесь:

Сравнение трех первых чисел из пяти C++
Сравнение чисел C++
Шаблоны template с ограниченными параметрами C++
C++ Наибольшее из трех чисел
Где в коде ошибка (сравнение трех чисел) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
26.08.2012, 23:44     Сравнение трех чисел ограниченными средствами #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
#include <iostream>
using namespace std;
 
int main(void)
{
    int a, b, c, d, e;
    cin >> a >> b >> c >> d >> e;
    int min = a, max = a;
    if (b < min)
        min = b;
    if (b > max)
        max = b;
 
    if (c < min)
        min = c;
    if (c > max)
        max = c;
 
    if (d < min)
        min = d;
    if (d > max)
        max = d;
 
    if (e < min)
        min = e;
    if (e > max)
        max = e;
    cout << "min = " << min <<endl;
    cout << "max = " << max << endl;
    return 0;
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
26.08.2012, 23:49     Сравнение трех чисел ограниченными средствами #3
Цитата Сообщение от Maxon Посмотреть сообщение
if ( x < y < z)
и что ты этим хотел сказать???
у тебя получится так
сравниваем x < y результат true (1) или false (0)
и вот с этими 1, 0 ты сравниваешь z
нужно писать так
C++
1
2
if ( (x < y)&&(y < z))
 cout <<"Naim " << x <<"\n" <<"Naib " << z <<"\n";
если не проходили логические операторы
то можно написать так
C++
1
2
3
if ( x < y)
     if(y< z)
         cout <<"Naim " << x <<"\n" <<"Naib " << z <<"\n";
Maxon
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 5
27.08.2012, 00:16  [ТС]     Сравнение трех чисел ограниченными средствами #4
softmob,

Спасибо, но min max нельзя использовать условиями задачи.


ValeryS,

Спасибо, второй вариант - мой. Т.е. для пяти чисел нужно будет писать
if ( n1 < n2)
if (n2 < n3)
........
if (n4 < n5)
Cout << "naim " << n1 << " Naib " << n5;

и так последовательно для всех пяти чисел?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
27.08.2012, 00:24     Сравнение трех чисел ограниченными средствами #5
Цитата Сообщение от Maxon Посмотреть сообщение
но min max нельзя использовать условиями задачи.
он использовал переменные (обзови их по другому) а не функции или макросы
Цитата Сообщение от Maxon Посмотреть сообщение
Спасибо, второй вариант - мой. Т.е. для пяти чисел нужно будет писать
if ( n1 < n2)
if (n2 < n3)
........
if (n4 < n5)
Cout << "naim " << n1 << " Naib " << n5;
и так последовательно для всех пяти чисел?
ну если не лень то да
Это сколько комбинаций то будет

Не по теме:

код тегами обрамляй
выдели код и сверху нажми на значок С++

Maxon
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 5
27.08.2012, 00:50  [ТС]     Сравнение трех чисел ограниченными средствами #6
Спасибо за ответы. Медитировал на программу softmob'a. Все так просто. А я бы не догадался. Срочно ищу "Логика для чайников"
Yandex
Объявления
27.08.2012, 00:50     Сравнение трех чисел ограниченными средствами
Ответ Создать тему
Опции темы

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