6 / 6 / 4
Регистрация: 09.11.2011
Сообщений: 131
|
|
1 | |
Заменить цифры словами23.07.2013, 23:14. Показов 5685. Ответов 19
Метки нет (Все метки)
Доброго времени суток. Читаю книжку Кочан Стефан, в 6 главе есть задача.
Пользователь вводит число, а на выходе должно получиться, что каждая цифра заменяется словом. пример. 123, "one", "two", "three". использовать можно только цикли, управляющие конструкции. без всякой там арифметики указателей и прочих мантр true C. Код есть, но он уныл и не работает, потому что нет алгоритма( Всем + в репу. PS. Без решенной задачи не читаю дальше книгу. PSS. Очень прошу не выкладывать решение, подтолкните меня в нужном направление, так хотя бы пойму что-нибудь
1
|
23.07.2013, 23:14 | |
Ответы с готовыми решениями:
19
Заменить цифры от 0 до 9 словами Цифры строки заменить на другие цифры Заменить интервалы между словами на 2 пробела Прочитать из файла числа и заменить словами |
19 / 19 / 7
Регистрация: 17.05.2013
Сообщений: 72
|
|
24.07.2013, 00:08 | 2 |
считываешь по символу до EOF, скажем, и применяешь оператор switch. имхо все что тут нужно
1
|
6 / 6 / 4
Регистрация: 09.11.2011
Сообщений: 131
|
|
24.07.2013, 00:20 [ТС] | 3 |
я с Вами полностью согласен, но дело в том, что в книге пока были только типы данных, циклы и управ. конструкции.
О getchar(), EOF не было ни слова. Поэтому надо использовать, то что дано.
0
|
408 / 227 / 43
Регистрация: 10.02.2013
Сообщений: 780
|
|
24.07.2013, 00:30 | 4 |
ну напиши что ты уже знаешь )
0
|
19 / 19 / 7
Регистрация: 17.05.2013
Сообщений: 72
|
|
24.07.2013, 00:37 | 5 |
ну можно switch заменить на 9 конструкций if else скажем и считывать символ функцией которую ты уже знаешь до символа новой строки
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
24.07.2013, 06:38 | 6 |
gnuvse, массивы в книге уже были?
1
|
3 / 3 / 1
Регистрация: 18.07.2013
Сообщений: 39
|
|
24.07.2013, 11:20 | 7 |
создаешь цикл в котором переменной "c" присваивает введенную цифру.Виходом с цикла может быть знак ентер или пробил.В теле цикла с помощью if проверяешь "c" == 1,2,3 и т.д. кликнув равна выводишь название цифры.
1
|
6 / 6 / 4
Регистрация: 09.11.2011
Сообщений: 131
|
|
24.07.2013, 17:58 [ТС] | 8 |
Нужно сразу, ввёл число, получил результат.
Если было все так просто, я даже бы не писал сюда Нет, только цикли, if-else, switch-case, :?, printf, scanf А так Вы правы, самый норм вариант, засунуть число в массив, пройти по его индексам и значения каждого индекса сравнить. Если я правильно понял Вашу мысль
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
24.07.2013, 18:13 | 9 |
Неа, неправильно. Я предлагаю создать массив, содержащий текстовое представление числа. Элементом с индексом 0 будет строка «zero», с индексом 1 — строка «one» и т.д. Считываем число в строковую переменную, для каждого символа из этой строки получаем числовой индекс, по которому определяем строку из массива. Эту строку и выводим для каждого символа.
Я бы привел код, но ты, как я понял, готовый код не хочешь.
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
24.07.2013, 18:15 | 10 | |||||
Сообщение было отмечено Памирыч как решение
Решение
Не, всё проще
1
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
24.07.2013, 18:17 | 11 |
0
|
easybudda
|
24.07.2013, 18:23
#12
|
Не по теме: Nameless One, что-то мне подсказывает, что это решение вопросов больше, чем сама задача, вызовет... ;)
0
|
6 / 6 / 4
Регистрация: 09.11.2011
Сообщений: 131
|
|
24.07.2013, 19:14 [ТС] | 13 |
Ознакомьтесь с выводом Вашей программы
Добавлено через 7 минут Выкладывайте. Может быть Вы и правы. Но без вопросов никак, а то из меня вырастит быдло_хеллоу_ворлдщик
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
24.07.2013, 19:29 | 14 |
Ознакомьтесь с максимальным значением, которое может хранить переменная типа unsigned int
Код
$ grep UINT_MAX /usr/include/limits.h # define UINT_MAX 4294967295U
0
|
6 / 6 / 4
Регистрация: 09.11.2011
Сообщений: 131
|
|
24.07.2013, 19:47 [ТС] | 15 |
0
|
19 / 19 / 7
Регистрация: 17.05.2013
Сообщений: 72
|
|
24.07.2013, 19:51 | 16 |
если в книге уже была конструкция switch, printf и scanf, то можно было бы сделать и по моему совету, не знаю что вас не устроило
0
|
Z3JheSBoYXQ=
342 / 237 / 83
Регистрация: 08.07.2012
Сообщений: 577
|
||||||
24.07.2013, 19:54 | 17 | |||||
далее в цикле считываем значение с клавиатуры форматированным вводом, условием выхода из цикла является любое значение отличное от спецификатора %ui = целочисленного без знакового. Это может быть буквенное значение к примеру. И в цикле проверяем на причастность введенного значения диапазону, если входит в диапазон то показываем строковую лексему из массива согласно индекса полученного от пользователя. Да, по scanf условие истинно будет оставаться до тех пор, пока scanf возвращает корректные значения, то есть количество полученных символов scanf будет больше 0 если оно корректно спецификатору.
1
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
24.07.2013, 19:56 | 18 | |||||
gnuvse, вот так можно очень много циферок вывести:
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
25.07.2013, 03:21 | 19 |
0
|
6 / 6 / 4
Регистрация: 09.11.2011
Сообщений: 131
|
|
25.07.2013, 18:02 [ТС] | 20 |
Всем спасибо за ответы, попробовал Ваши варианты.
PS. Репа поднята
0
|
25.07.2013, 18:02 | |
25.07.2013, 18:02 | |
Помогаю со студенческими работами здесь
20
Ввести строку, заменить интервалы между словами на 2 пробела Ввести строку, заменить интервалы между словами на 2 пробела Заменить первую букву у слов, следующих за словами die, der, das, на прописную Заменить цифры от 0 до 9 словами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |