Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 05.12.2022
Сообщений: 30

Расположить 4 числа по возрастанию

08.12.2022, 16:16. Показов 6612. Ответов 21

Студворк — интернет-сервис помощи студентам
Вводятся 4 целых числа (a,b,c,d). Необходимо в переменную a записать меньшее из этих чисел, в b-второе по величине, в c-третье, а в d - наибольшее из них. Алгоритм должен совершать не более 5 операций сравнения.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2022, 16:16
Ответы с готовыми решениями:

Расположить все ненулевые элементы по возрастанию, а все нули расположить после ненулевых элементов
Помогите, пожалуйста, с задачей Надо: Создать массив из 50 элементов Заполнить его случайными числами из диапазона (-16, 18) ...

Расположить точки данного множества по возрастанию в соответствии с указанным порядком
Дано множество A из N точек с целочисленными координатами x, y. Порядок на координатной плоскости определим следующим образом: (x1, y1)...

Расположить числа в массиве по возрастанию
Даны 2 натуральных числа A и B. Выведи массив из B чисел A и A чисел B. Числа в массиве должны быть расположены по возрастанию. ...

21
0 / 0 / 0
Регистрация: 05.12.2022
Сообщений: 30
08.12.2022, 18:03  [ТС]
Вводятся 4 целых числа (a,b,c,d). Необходимо в переменную a записать меньшее из этих чисел, в b-второе по величине, в c-третье, а в d - наибольшее из них. Алгоритм должен совершать не более 5 операций сравнения.
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
08.12.2022, 20:28
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int abcd[4]={4,1,8,1};
for(int i=0;i<3;i++)
{
   for(int j=0;j<3-i;j++)
   {
        if(abcd[j]>abcd[j+1])
        {
            int t=abcd[j];
            abcd[j]=abcd[j+1];
            abcd[j+1]=t;
        }
   }
}
количество сравнений 3+2+1=6
0
Вирусоборец
 Аватар для thyrex
14440 / 7482 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
08.12.2022, 20:56
zss, а код на плюсах тут каким боком?

qwerty98,
Python
1
2
3
4
5
6
7
8
9
10
11
12
a, b, c, d = map(int, input().split())
if a>b:
    a, b = b, a
if c>d:
    c, d = d, c
if a>c:
    a, c = c, a
if b>d:
    b, d = d, b
if b>c:
    c, b = b, c
print(a, b, c, d)
4
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
08.12.2022, 21:02
thyrex, пардон, зашел по ссылке и не обратил внимание, что другой раздел.
1
Вирусоборец
 Аватар для thyrex
14440 / 7482 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
08.12.2022, 21:06
zss, исправьте, пожалуйста, мой код, удалив строки 10 и 11. Пишу с телефона и случайно вставил лишнее
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
08.12.2022, 22:02
Python
1
2
a, b, c, d = sorted(map(int, input().split()))
print(a,b,c,d)
0
Вирусоборец
 Аватар для thyrex
14440 / 7482 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
08.12.2022, 22:05
u235, не соответствует заданию
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
08.12.2022, 22:31
thyrex, почему не соответствует?
0
Вирусоборец
 Аватар для thyrex
14440 / 7482 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
08.12.2022, 22:34
Последнее предложение в задании прочтите
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
08.12.2022, 22:38
thyrex, а сколько у меня операций сравнения? По-моему меньше чем 5...
0
1191 / 760 / 128
Регистрация: 10.03.2012
Сообщений: 4,894
08.12.2022, 22:50
thyrex,
Python
1
2
3
4
5
6
7
8
9
10
a, b, c, d = map(int, input().split())
if a>b:
    a, b = b, a
if c>d:
    c, d = d, c
if a>c:
    a, c = c, a
if b>d:
    b, d = d, b
print(a, b, c, d)
0
Вирусоборец
 Аватар для thyrex
14440 / 7482 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
08.12.2022, 23:02
Whitecolor,
Bash
1
2
8 4 5 7
4 7 5 8
2
398 / 255 / 98
Регистрация: 04.11.2022
Сообщений: 378
08.12.2022, 23:50
Да, я тоже попытался сократить число сравнений или изменить их порядок - не получается! Вот "стенд" для испытаний своих кодов:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def thy(a, b, c, d):
    if a>b:
        a, b = b, a
    if c>d:
        c, d = d, c
    if a>c:
        a, c = c, a
    if b>d:
        b, d = d, b
    if b>c:
        b, c = c, b
    return [a, b, c, d]
 
from random import randint
for i in range(1000):
    x = [randint(-5, 5) for _ in range(4)]
    if sorted(x) != thy(*x):
        print(x, sorted(x), thy(*x))
        break
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
09.12.2022, 16:10
Vigilant Mole, можно попробовать сравнивать не по одному числу, а суммы, например, двух чисел.. задача похожа на задачу про рычажные весы..
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
09.12.2022, 18:56
Я помню эту задачу… и не помню, чтобы я её решил…

Цитата Сообщение от u235 Посмотреть сообщение
а суммы, например, двух чисел.. задача похожа на задачу про рычажные весы..
Сравнений шесть надо сделать:
Python
1
2
3
4
5
6
7
8
9
>>> a,b,c,d=8,4,5,7
>>> if a+b>c+d:c,d=a,b
... 
>>> if a>b:a,b=b,a
... 
>>> if c>d:c,d=d,c
... 
>>> a,b,c,d
(4, 8, 5, 7)
0
 Аватар для VistaSV30
986 / 330 / 79
Регистрация: 10.04.2012
Сообщений: 1,239
Записей в блоге: 4
18.10.2024, 00:30
thyrex, теперь задачу немного усложнили - нужно найти минимальное число, составленное из 4-х цифр заданного числа. При этом нельзя пользоваться циклами, списками, строками
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
x = 1011
a = x // 1000
b = x // 100 % 10
c = x % 100 // 10
d = x % 10
 
if a < b: a, b = b, a
if c < d: c, d = d, c
if a < c: a, c = c, a
if b < d: b, d = d, b
if b < c: c, b = b, c
 
print(d*1000 + c*100 + b*10 + a)
0
2 / 3 / 0
Регистрация: 29.12.2021
Сообщений: 52
18.10.2024, 13:13
Может так?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
a, b, c, d = 10, 2, 11, 71
 
 
if a + d < b + c:
    a, b = b, a
    c, d = d, c
print(a, b, c, d)
 
if a > d:
    a, d = d, a
print(a, b, c, d)
 
if a > b:
    a, b = b, a
print(a, b, c, d)
 
if b > c:
    b, c = c, b
print(a, b, c, d)
 
if a > b:
    a, b = b, a
print(a, b, c, d)
Добавлено через 50 минут
код не работает.
0
Вирусоборец
 Аватар для thyrex
14440 / 7482 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
18.10.2024, 19:30
kuchak, разницу между числами и цифрами знаете? Похоже, что нет

Добавлено через 1 минуту
VistaSV30, а количество сравнений теперь не важно?
0
2 / 3 / 0
Регистрация: 29.12.2021
Сообщений: 52
18.10.2024, 19:32
Цитата Сообщение от qwerty98 Посмотреть сообщение
Вводятся 4 целых числа (a,b,c,d)
В задании вводятся числа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2024, 19:32
Помогаю со студенческими работами здесь

Расположить числа по возрастанию
Пользователь вводит четыре числа: a, b, c, d float a, b, c, d; cin &gt;&gt; a &gt;&gt; b &gt;&gt; c &gt;&gt; d; как легче всего расположить их по...

Расположить 3 числа по возрастанию
как 2 числа я знаю. Подскажите как с 3 числами

Расположить числа по возрастанию
Дан массив из 7 чисел. Расположить числа по возрастанию. Ввести число М так, чтобы оно вошло в массив и получившийся массив также ...

Расположить числа по возрастанию
Дан массив из 13 чисел. Расположить числа по возрас- танию. Ввести с клавиатуры число М так, чтобы оно вошло в массив и получившийся...

Расположить числа по возрастанию
Дан массив из 7 чисел. Расположить числа по возрастанию. Ввести число М так, чтобы оно вошло в массив и получившийся массив также ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru