20.11.2010, 18:31 | #1 (permalink) |
Новичок
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Последовательность вещественных чисел
Вводится последовательность вещественных чисел, оканчивающаяся нулём, и состоящая более чем из одного ненулевого элемента. Определить, номер числа, по абсолютной величине самого близкого к своему номеру. Если таких чисел несколько - вывести все номера этих эелементов. Я её могу сделать, если бы не нужно было выводить все номера всех таких элементов. Пробовал через строки но там у меня такая муть получается... Заранее очень благодарен! |
20.11.2010, 18:31 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Скорее всего тут можно найти ответ Даны три вещественных числа... Cоздать файл целых чисел Массивы Напишите функцию, преобразующую символы табуляции в последовательность из n пробелов Программа перемножения длинных чисел на С++ |
20.11.2010, 18:54 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Язык, черт побери, какой?!!!
Ох, извините - ну сил уже нет задавать этот вопрос каждому второму обратившемуся! Ну неужели непонятно, что нужно прежде всего язык программирования указать? |
20.11.2010, 19:27 | #4 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Алгоритм:
Определяете массив с числом элементов заведомо большим, чем количество чисел в последовательности. Заполняете массив значениями путем ввода последовательности чисел, причем признаком окончания ввода является 0. Находите наименьшую разницу между абсолютным значением элемента массива и его номером Выводите все элементы массива, для которых эта разница действительна.
__________________
Убить всех человеков! |
20.11.2010, 19:31 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Alex меня немного опередил с алгоритмом, но всё же приведу свои соображения:
1. Вводите массив искомых НОМЕРОВ, например, Num[i]. 2. Пусть N - количество элементов, обладающих указанным свойством. 3. Начинаете с того, что вычисляете Min=|a1-1|, где a1 - первый введенный элемент, N:=1 и Num[N]:=1. 4. Если последующие разности превышают Min и встретился еще элемент с номером i, у которого значение разности равно Min, то N увеличиваете на 1 и Num[N]:=i и т.д. до конца. 5. Если встретился i-тый элемент ai, у которого значение модуля разности с его номером меньше Min, то Min:=|ai-i|, N:=1, Num[N]:=i и далее п.4. 6. В конце вывести массив Num от i=1 до N. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
20.11.2010, 19:42 | #6 (permalink) |
Новичок
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Если бы всё было так просто... В том то и дело, что неизвестно сколько элементов будет в последовательности. И я не могу использовать массив и т.п.- Запрещено Преподом!
Я вот как уже сказал, пробовал использовать строки вместо массива, но там я окончательно запутался переводя из строк в числа и т.д. |
20.11.2010, 19:51 | #7 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Значит, массив нельзя? Но, может быть, можно файл? Тогда сбрасывайте номера в файл, а при изменении значения Min очищайте его командой rewrite. Или тоже нельзя? |
|
20.11.2010, 19:57 | #8 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
А каким образом хранить последовательность в памяти, случаем, препод вам не объяснял? Куда вы числа должны сохранять, чтобы обработку сделать? В стек? Или в файл? Если в файл - способ выше описан.
__________________
Убить всех человеков! |
20.11.2010, 20:06 | #9 (permalink) |
Новичок
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Эмм...Такого еще не знаю, не изучали еще -1 курс Насчёт этого не было конечно запретов, но скорее всего он естественно не разрешит. Хотя меня это заинтересовало, не подскажите где можно найти инфу на эту тему? Или если можете объясните пожалуйста по-подробнее.
|
20.11.2010, 20:08 | #10 (permalink) |
Новичок
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|