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

Даны три числа, упорядочить их по возрастанию (не используя массивы) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
nata18
1 / 1 / 0
Регистрация: 13.02.2011
Сообщений: 179
28.09.2011, 12:13     Даны три числа, упорядочить их по возрастанию (не используя массивы) #1
дано 3 числа. упорядочить их по возрастанию
при этом не использовать циклы и массивы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Жека-старший
Студент
 Аватар для Жека-старший
496 / 344 / 42
Регистрация: 15.03.2010
Сообщений: 601
28.09.2011, 12:25     Даны три числа, упорядочить их по возрастанию (не используя массивы) #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int a=200,b=928,c=99,buf;
    if (a>b)
    {
        buf=a;
        a=b;
        b=buf;
    }
    if (b>c)
    { 
        buf=b;
        b=c;    
        c=buf;
    }
    if (a>b)
    {
        buf=a;      
        a=b;
        b=buf;
    }
nata18
1 / 1 / 0
Регистрация: 13.02.2011
Сообщений: 179
28.09.2011, 12:35  [ТС]     Даны три числа, упорядочить их по возрастанию (не используя массивы) #3
спасибо=)
-=ЮрА=-
Заблокирован
Автор FAQ
28.09.2011, 13:01     Даны три числа, упорядочить их по возрастанию (не используя массивы) #4
nata18, ещё смотри, код поэлегантней будет
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
44
45
46
47
48
49
50
51
#include <stdio.h>//i/o
#include <conio.h> //getch()
#include <ctype.h> //toupper
 
//
int minv(int val1, int val2)
{
    return ((val1 < val2) ? val1 : val2);
}
 
int main()
{
    int a,b,c,buf;
    do
    {
        printf("Enter numbers\r\n");
        printf("a = ");scanf("%d",&a);
        printf("b = ");scanf("%d",&b);
        printf("c = ");scanf("%d",&c);
        printf("%d ",buf = minv(minv(a, b),c));
        if(buf == c)
        {
            printf("%d ",buf = minv(a, b));
            if(buf == a)
                printf("%d\r\n",b);
            else
                printf("%d\r\n",a);
        }
        else
        if(buf == b)
        {
            printf("%d ",buf = minv(a, c));
            if(buf == a)
                printf("%d\r\n",c);
            else
                printf("%d\r\n",a);
        }
        if(buf == a)
        {
            printf("%d ",buf = minv(b, c));
            if(buf == b)
                printf("%d\r\n",c);
            else
                printf("%d\r\n",b);
        }
 
        printf("\r\nY - new input\r\n");
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Enter numbers
a = 5
b = 7
c = 6
5 6 7

Y - new input
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
28.09.2011, 14:21     Даны три числа, упорядочить их по возрастанию (не используя массивы) #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
#define min(a, b) ( (a) > (b) ? (b) : (a) )
#define max(a, b) ( (a) < (b) ? (b) : (a) )
#define min3(a, b, c) ( min(min((a), (b)), (c)) )
#define max3(a, b, c) ( max(max((a), (b)), (c)) )
#define middle(a, b, c) ( ( (a) < (b) ) ? ( (c) < (b) ) ? max((a), (c)) : (b) : ( (c) < (a) ) ? max((b), (c)) : (a) )
    
int main(void){
    int a, b, c;
    
    printf("Enter 3 space separated numbers:\n");
    while ( printf("> ") > 0 && scanf("%d %d %d", &a, &b, &c) == 3 )
        printf(": %d %d %d\n", min3(a, b, c), middle(a, b, c), max3(a, b, c));
    
    return 0;
}
nata18
1 / 1 / 0
Регистрация: 13.02.2011
Сообщений: 179
28.09.2011, 15:57  [ТС]     Даны три числа, упорядочить их по возрастанию (не используя массивы) #6
большое спасибо)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2015, 20:09     Даны три числа, упорядочить их по возрастанию (не используя массивы)
Еще ссылки по теме:

C++ Даны два одномерные массивы A (a [1], a [2], ..., a [n]) и B (b [1], b [2], ..., b [m]), размеры равны n и m . Упорядочить их указанными методами
Упорядочить по возрастанию три введенных числа C++
Расположить три целых числа по возрастанию C++

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

Или воспользуйтесь поиском по форуму:
SasaSupov
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 1
15.12.2015, 20:09     Даны три числа, упорядочить их по возрастанию (не используя массивы) #7
Да в лоб можно всего 6 комбинаций:
C++
1
2
3
4
5
6
    if (a <= b && a <= c && b <= c) cout << a << ", " << b << ", " << c << '\n';
    if (b <= a && b <= c && a <= c) cout << b << ", " << a << ", " << c << '\n';
    if (b <= a && b <= c && c <= a) cout << b << ", " << c << ", " << a << '\n';
    if (c <= a && c <= b && a <= b) cout << c << ", " << a << ", " << b << '\n';
    if (c <= a && c <= b && b <= a) cout << c << ", " << b << ", " << a << '\n';
    if (a <= b && a <= c && c <= b) cout << a << ", " << c << ", " << b << '\n';
Yandex
Объявления
15.12.2015, 20:09     Даны три числа, упорядочить их по возрастанию (не используя массивы)
Ответ Создать тему
Опции темы

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