0 / -2 / 0
Регистрация: 26.09.2016
Сообщений: 34
|
||||||||||||
1 | ||||||||||||
Заменить все встречающиеся в тексте числа на эти же числа в двоичной системе счисления19.07.2017, 13:02. Показов 12039. Ответов 16
Метки нет (Все метки)
Условие задачи:
На планете Роботов очень не любят десятичную систему счисления, поэтому они попросили Вас написать программу, которая заменяет все встречающиеся в тексте числа на эти же числа, но в двоичной системе счисления. Входные данные Единственная строка, состоящая из любых символов. Длина строки не превышает 255 символов. Гарантируется, что во всех числах нет ведущих нулей. Выходные данные Выведите преобразованную строку. Примеры входные данные 6^&678JKjdkdl;?.,lk879Pk1kdfl4839 выходные данные 110^&1010100110JKjdkdl;?.,lk1101101111Pk1kdfl1001011100111 Мой код:
0
|
19.07.2017, 13:02 | |
Ответы с готовыми решениями:
16
Заменить все встречающиеся в тексте числа на эти же числа, но в двоичной системе счисления Написать программу, которая заменяет все встречающиеся в тексте числа на эти же числа, но в двоичной системе счисления Дана строка - запись числа в двоичной системе счисления. Преобразуйте ее в строку - запись числа в шестнадцатеричной системе счисления Если строка является изображением целого числа в восьмеричной системе счисления, то перевести ее в целое число в двоичной системе счисления |
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
19.07.2017, 13:32 | 2 |
и что не так? если строго задаче вроде как все работает..
а так удобнее наверное было бы, отфильтрованные символы не выводить. P.S. - И да, код у вас написан на Си, а раздел где Вы написали для С++
1
|
0 / -2 / 0
Регистрация: 26.09.2016
Сообщений: 34
|
|
19.07.2017, 13:44 [ТС] | 3 |
Задача с сайта с автопроверкой (ссылка в самом верху кода).Программа не проходит некоторые тесты, а отфильтрованные символы, когда я прогонял собственные тесты,не выводил,но по условию это необходимо сделать.Извините, не увидел, что есть раздел C (но толку мало-там почти никто не сидит).
0
|
822 / 625 / 321
Регистрация: 24.02.2017
Сообщений: 2,205
|
||||||
21.07.2017, 00:30 | 4 | |||||
0
|
Вездепух
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,053
|
|
21.07.2017, 01:45 | 5 |
Не будет работать с пустой строкой. Откуда вообще пошла эта странная манера использовать
scanf("%[^\n]" ? Чем вам fgets не угодил?Не ошибка, но избыточная проверка на r<strlen(str) ...Это как это? Радел "С для начинающих" весьма активен. Я в условии задачи не увидел никаких ограничений на диапазон самих чисел. А вы смело используете atoi ...
0
|
Модератор
12456 / 7480 / 1753
Регистрация: 25.07.2009
Сообщений: 13,759
|
|
21.07.2017, 03:04 | 6 |
А что с ней не так? Просто использовать правильно надо - размер буфера указывать + возвращаемое значение проверять.
Символ перевода строки в хвост вставляет, а это не всегда удобно. Проверяй потом, есть он там, не, выковыривай, если есть...
0
|
822 / 625 / 321
Регистрация: 24.02.2017
Сообщений: 2,205
|
||||||
21.07.2017, 08:54 | 7 | |||||
0
|
0 / -2 / 0
Регистрация: 26.09.2016
Сообщений: 34
|
|
21.07.2017, 14:12 [ТС] | 8 |
Спасибо, буду знать, что такая инструкция форматирования не подходит для пустых строк.
Первый способ ввода строк по моему учебнику - scanf с такой строкой форматирования.И, кстати, в чем разница fgets и gets? В цикле же r увеличивается, вдруг за пределы строки выйдет? Видел онлайн 26 человек А в чем проблема? (Правда число длинной 255 не влезет в int ) Добавлено через 2 минуты Подскажите как
0
|
Заблокирован
|
||||||
21.07.2017, 14:28 | 9 | |||||
Сообщение было отмечено assassinviktor как решение
Решение
ну если есть чем проверить
1
|
0 / -2 / 0
Регистрация: 26.09.2016
Сообщений: 34
|
|
21.07.2017, 14:46 [ТС] | 10 |
Спасибо вам большое!
Один только вопрос : как использовать указатели в качестве лог выражений? Когда они равны 0?
0
|
Вездепух
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,053
|
|
21.07.2017, 17:35 | 11 |
Тем, что никакого
gets уже давно нет. Выпилили.Во-первых, если бы вы боялись, что r может выйти за пределы строки, то проверка r<strlen(str) должна была бы стоять первой в условии цикла, а не последней. Иначе ваши проверки (str[r]>='0') && (str[r]<='9') уже вылезали бы за пределы строки.Во-вторых, не может r выйти за пределы строки. В конце строки стоит '\0' . Поэтому ваша проверка (str[r]>='0') && (str[r]<='9') автоматически остановит цикл при достижении этого '\0' . Поэтому проверка r<strlen(str) - избыточна.Именно в этом и проблема.
1
|
0 / -2 / 0
Регистрация: 26.09.2016
Сообщений: 34
|
|
21.07.2017, 19:54 [ТС] | 12 |
0
|
0 / -2 / 0
Регистрация: 26.09.2016
Сообщений: 34
|
|
22.07.2017, 14:18 [ТС] | 14 |
0
|
0 / -2 / 0
Регистрация: 26.09.2016
Сообщений: 34
|
|
22.07.2017, 17:23 [ТС] | 16 |
0
|
Заблокирован
|
|
23.07.2017, 03:07 | 17 |
а напрасно, отрицательные числа очень по другому выглядят
0
|
23.07.2017, 03:07 | |
23.07.2017, 03:07 | |
Помогаю со студенческими работами здесь
17
Вводится числа от 1 до 15. Вывести данные числа в двоичной системе счисления Функция: вычислить значение числа по записи этого числа в двоичной системе счисления Проверить правильность ввода числа в двоичной системе счисления и перевести это число из двоичной системы в десятичную Запись числа в двоичной системе счисления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |