28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
||||||
1 | ||||||
Найти два наибольших числа из десяти30.08.2015, 03:01. Показов 5398. Ответов 18
Метки нет (Все метки)
С одним числом написал, а вот чтобы найти два числа ума не хватает. Нужно использовать только одну переменную для ввода чисел. Число вводится в цикле while только один раз, цикл повторяется десять раз. Массивы и т.п. использовать не нужно, скорее всего как-то через if делается.
Добавлено через 1 минуту Вот пример с одним числом:
0
|
30.08.2015, 03:01 | |
Ответы с готовыми решениями:
18
Программа которая выводит два наибольших числа из десяти введенных. Пожалуйста объясните суть работы программы Найти два наибольших числа в последовательности Оператор for,if ( найти два наибольших числа) Найти два наибольших простых числа в матрице |
Неэпический
|
||||||
30.08.2015, 03:52 | 2 | |||||
Как-то так?
1
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
|
30.08.2015, 04:11 [ТС] | 3 |
Эмм, ну на самом деле, я думаю, что нет, т.к. я многого из вашего кода не понял, т.е. не пройдено такого.
Я нашел тему за 2013г с такой же задачей, там тоже ребята отвечали, но всё не то. Я понимаю, что у Вас другой уровень знаний, но мне бы решить задачу на своем уровне знаний, которую, кстати, я так решить и не могу. Я скинул пример решенной задачи на основе своих знаний, полученных из раздела. И сейчас процитирую поставленную задачу из учебника: "Используя подход предыдущего упражнения, найдите два наибольших значения из 10 чисел. (Замечание. Каждое число вы должны вводить только один раз)" Собственно, я так полагаю, что можно еще добавить несколько переменных, если нужно, а вот всё остальное решать в подобном стиле. Если бы за один цикл можно было бы вводить, к примеру, два значения, то решаемо, а иначе я не понимаю.. Добавлено через 53 секунды Но всё равно спасибо за как никак, но труд. Добавлено через 1 минуту Еще проходил тип bool(даже не проходил, этот тип просто упомянут был один раз), но абсолютно не применял на действии, поэтому делаю вывод, что вряд ли дали бы что-то подобное. (Видел решенную задачу, каким форумчанином, таким способом). Кстати, да, задача из книги Дейтелов.
0
|
Неэпический
|
||||||
30.08.2015, 04:18 | 4 | |||||
Сообщение было отмечено kalonord как решение
Решение
ок. Давайте так:
1
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
||||||
30.08.2015, 04:25 [ТС] | 5 | |||||
Croessmah, один вопрос:
0
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
|
30.08.2015, 04:30 [ТС] | 7 |
Как я понял, минимальное значение типа int ?
0
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
||||||
30.08.2015, 04:58 [ТС] | 9 | |||||
Croessmah, ваш код некорректно работает без этой строчки
Т.е. max1 and max2 у нас имею какие-то одинаковые минимальные значения. Зачем присваивать одно и то же значение max1 -> max2 ? И главное, работает ведь.. Добавлено через 17 минут Не по теме: Всё раздел не могу закончить, эти задачи жутко тормозят. Печаль.
0
|
Неэпический
|
|
30.08.2015, 05:14 | 10 |
ну она же там не просто так
совет: когда не понимаете что происходит, возьмите карандаш с листочком и распишите что происходит В данном случае в max1 хранится максимальное найденное значение, а в max2 - второе по величине, значит, если нашли новое максимальное значение, то старое максимальное станет вторым по величине, поэтому его и пишем в max2. Разберемся на примере. Пользователь вводит 3 9 4 8 (не будем брать 10 чисел, утомительно расписывать). Алгоритм в цикле: 1) считываем очередное число в number 2) max1 < number. Если да, то идем в пункт 3, иначе идем в пункт 5 3) max2 = max1 4) max1 = number. Переходим в пункт 7. 5) max2 < number. Если да, то идем в пункт 6, иначе переходим в пункт 7. 6) max2 = number. 7) Переход к следующей итерации Теперь по каждой итерации. Итерация 1: max1 и max2 имеют минимально возможное значения. 1) number = 3 2) INT_MIN < 3? Да, значит идем в пункт 3. 3) max2 = INT_MIN 4) max1 = 3 7) Переходим к следующей итерации. Итерация 2: max1 = 3 max2 = INT_MIN 1) number = 9 2) 3 < 9? Да, значит идем в пункт 3. 3) max2 = 3 4) max1 = 9 7) Переходим к следующей итерации. Итерация 3: max1 = 9 max2 = 3 1) number = 4 2) 9 < 4? Нет, значит идем в пункт 5. 5) 3 < 4. Да, значит идем в пункт 6 6) max2 = 4. 7) Переходим к следующей итерации. Итерация 4: max1 = 9 max2 = 4 1) number = 8 2) 9 < 8? Нет, значит идем в пункт 5. 5) 4 < 8. Да, значит идем в пункт 6 6) max2 = 8. 7) Переходим к следующей итерации. Конец. В результате имеем max1 = 9 max2 = 8 Добавлено через 1 минуту
1
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
|
30.08.2015, 05:23 [ТС] | 11 |
В следующий раз попробую
Я понял, большое спасибо. Просто я почему-то не смотрю наперёд, вижу, что зачем то присваиваем одно и то же значение, а про дальнейшую судьбы переменной даже не думаю. Надеюсь, что со временем этот идиотизм с моей стороны пройдет. Не по теме: Кстати, у Вас случаем не лагает форум? Сейчас какие-то проблемы были, да и частенько по утрам такое происходит, мб тех. работы..
0
|
Croessmah
|
30.08.2015, 05:26
#12
|
0
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
|
30.08.2015, 05:28 [ТС] | 13 |
Сейчас поймал себя на мысли, что это вполне всё логично и просто, но сам бы я вряд ли бы до такого додумался.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 12
|
||||||
12.12.2016, 13:44 | 15 | |||||
Вообще решение данной задачи выглядит примерно вот-так. Если делать по дейтелам. Ибо ничего другого в ней ещё не озвучивалось на этом моменте. И нечего там усложнять...
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 12
|
|
12.12.2016, 14:33 | 17 |
Вот это мой косяк) Можно вообще инициализировать переменные как double со значением -9999 9999 9999 9999.
Но иных способов в книге на данном этапе рассматривается(вернее даже упоминания нет о такой возможности), тем более как минимально-возможное значение.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 12
|
|
12.12.2016, 14:44 | 19 |
Можно, но не будет ли это неоправданным усложнением кода?
Но и идея классная)
0
|
12.12.2016, 14:44 | |
12.12.2016, 14:44 | |
Помогаю со студенческими работами здесь
19
Даны четыре разных числа. Найти среди них два наибольших Даны четыре разных числа. Найти среди них два наибольших Найти два наибольших числа из всех введенных, при условии что цифры не повторяются Найти два наименьших|наибольших из данных десяти элементов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |