3 / 3 / 2
Регистрация: 10.09.2013
Сообщений: 210
|
|
1 | |
Найти в символьном массиве трёхзначные числа15.06.2014, 17:32. Показов 4928. Ответов 17
Метки нет (Все метки)
Дали задание на практике.
В нём надо прочесть из файла символьный массив и найти количество трёхзначных чисел в нём. Если количество нечётно - вывести на экран массив в обратном порядке. И в этом нахождении трёхзначных чисел основная проблема: я даже не представляю, как это делать. Нам такое не читали, а задание дали. Кто-нибудь, хоть подайте идею, как это сделать. Заранее спасибо
0
|
15.06.2014, 17:32 | |
Ответы с готовыми решениями:
17
Найти в массиве трехзначные числа, сумма которых равна k Поиск числа в символьном массиве Найти количество слов в символьном массиве Найти количество отрицательных элементов в символьном массиве |
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
15.06.2014, 17:38 | 2 |
Строка в файле: ыва афы а 214 павыф п 234 аы875аф
Действие 1: Разбейте строку на слова Действие 2: Создайте процедуру проверки каждого слова, в C++ есть такие функции как isDigit. Действие 3: Далее уже нужные вам условия(подсчет, и т.п)
0
|
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
|
||||||
15.06.2014, 17:39 | 3 | |||||
Монтгомери, вот метод, которой проверяет является ли число трехзначным
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
15.06.2014, 17:56 | 4 |
Впрочем, ТС надо было текст анализировать.
0
|
3 / 3 / 2
Регистрация: 10.09.2013
Сообщений: 210
|
|
15.06.2014, 18:11 [ТС] | 5 |
Т.е. только разбивать на слова? В если входной массив выглядит, к примеру, так: fasd224a54dasd5764s ? На этот случай есть варианты?
Я пробовал посимвольно проверять, но что-то фантазия у меня буксовала, и я так и не придумал, как это осуществить. Тогда следующий вопрос: как разделить строку на слова? Добавлено через 14 минут Я нашёл только strtok, но массив идёт "сплошняком", без каких-либо разделителей, так что strtok не подошёл.
0
|
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
|
||||||
15.06.2014, 18:16 | 6 | |||||
Монтгомери, вот пример, программа разбивает строку на слова
0
|
3 / 3 / 2
Регистрация: 10.09.2013
Сообщений: 210
|
|
15.06.2014, 18:21 [ТС] | 7 |
Эмм... А можете объяснить, как это работает?
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
15.06.2014, 18:21 | 8 |
1) Начало последовательности совпадает с началом массива ИЛИ последовательности предшествует символ не являющийся цифрой. 2) Последовательность включает в себя три цифры. 3) Конец последовательности совпадает с концом массива ИЛИ за последовательностью идет символ не являющийся цифрой. Дальше сами справитесь? И выучите регулярные выражения. Тогда ответ выше будет очевиден.
0
|
3 / 3 / 2
Регистрация: 10.09.2013
Сообщений: 210
|
|
15.06.2014, 18:34 [ТС] | 9 |
Я впервые услышал о регулярных выражениях сейчас от вас. А типы char и string нам вообще дали в духе "есть такие вот зверушки", но что с ними делать так и не сказали. И тут вдруг практика с заданиями, которые мы и не могли решить, используя прочитанный нам на лекциях материал.
Нам давали только массивы, циклы и функции. И работать я умею только с арифметичесими типами. Так что я до сих пор не представляю, что надо делать дальше -_- Те три условия понятны, но как их реализовать я всё ещё не понимаю.
0
|
Неэпический
|
||||||
15.06.2014, 18:41 | 10 | |||||
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
15.06.2014, 18:45 | 11 |
1
|
3 / 3 / 2
Регистрация: 10.09.2013
Сообщений: 210
|
||||||
15.06.2014, 19:26 [ТС] | 12 | |||||
А такой вариант будет работать?:
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|||||||||||
15.06.2014, 19:39 | 13 | ||||||||||
Не
1
|
3 / 3 / 2
Регистрация: 10.09.2013
Сообщений: 210
|
|
15.06.2014, 21:17 [ТС] | 14 |
А, точно, совсем забыл про размерность массива. Спасибо.
А вот почему преинкремент? Определение я помню, но почему здесь именно они, а не постинкремент?
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
15.06.2014, 21:28 | 15 |
Постинкремент увеличивает значение переменной (одна ячейка памяти) и возвращает ее изначальное значение (вторая ячейка памяти). Преинкремент увеличивает переменную и возвращает ее новое значение (одна ячейка памяти). То есть, логически работает чуточку проще.
После того как компилятор выполнит оптимизацию разницы скорее всего не будет никакой, так что замена выполнена чисто для психологического комфорта.
1
|
3 / 3 / 2
Регистрация: 10.09.2013
Сообщений: 210
|
|
15.06.2014, 22:05 [ТС] | 16 |
И снова благодарю
0
|
221 / 166 / 47
Регистрация: 17.07.2012
Сообщений: 587
|
|
16.06.2014, 09:21 | 17 |
кстати это же неверно по-моему!
надо условие выхода за границу ставить вперед, до проверки "на цифру".
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
16.06.2014, 13:31 | 18 |
Да, действительно, косяк.
0
|
16.06.2014, 13:31 | |
16.06.2014, 13:31 | |
Помогаю со студенческими работами здесь
18
В символьном массиве найти наиболее часто встречающееся значение Найти в заданном одномерном символьном массиве нечётный палиндром наибольшей длины Найти все трехзначные числа равные среднему арифметическому цифр данного числа Найти все трехзначные числа,определив функцию, позволяющую распознавать простые числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |