1 | ||||||
Улучшение алгоритма подсчета строк, букв, слов28.06.2012, 12:01. Показов 3258. Ответов 18
Метки нет (Все метки)
Данный алгоритм, компилируется. Однако есть недочеты:
1. Не всегда верно считает буквы. Почему не очень понимаю. 2. Два спейса считает как слово. Надо как то включить с логически и (&&) чтобы слово он считал как спейс + хотя бы одна бука из алфовита, так вот я не знаю как это прописать типа 'a-z' && 'A-Z' как то так что ли ? Заранее огромное спасибо.
0
|
28.06.2012, 12:01 | |
Ответы с готовыми решениями:
18
Улучшение алгоритма записи строк Программа подсчета строк, слов и символов не выводит результат Улучшение алгоритма вычисления определителя матрицы, порядка n>3 Как в один STRING засунуть несколько слов, строк, букв? |
88 / 67 / 37
Регистрация: 28.06.2012
Сообщений: 161
|
||||||
28.06.2012, 12:24 | 2 | |||||
2) Возможно, стоит флаг разделителя добавить?
0
|
88 / 67 / 37
Регистрация: 28.06.2012
Сообщений: 161
|
||||||
28.06.2012, 12:53 | 4 | |||||
Вопрос не понят.
1
|
28.06.2012, 12:58 | 5 | |||||
У вас последний пробел перед Ctrl+D тоже увеличивает счет слов. А это не правильно. Счетчик слов надо увеличивать при появлении первой буквы после табуляции или пробела.
Добавлено через 4 минуты
1
|
88 / 67 / 37
Регистрация: 28.06.2012
Сообщений: 161
|
|
28.06.2012, 13:00 | 6 |
Возможно, я не прав, но у меня всё работает так, как должно. Даже с пробелом перед Ctrl+D.
1
|
28.06.2012, 13:11 | 9 |
Кстати. Возможно есть еще недочет по "крайней ситуации". Ни чего не ввели, а сразу Ctrl+D. О символов и слов, но 1 строка.
Добавлено через 1 минуту Да я допустил ошибку. в строке 11ю Надо =1 а не 0
1
|
88 / 67 / 37
Регистрация: 28.06.2012
Сообщений: 161
|
||||||
28.06.2012, 13:22 | 11 | |||||
Разве это не логично? Одна строка у нас в любом случае есть, хоть и пустая.
Leeto,
1
|
28.06.2012, 13:29 | 12 | |||||
Все зависит от ТЗ. В общем случае, на мой взгляд логичнее, когда получено 0 символов. Не может быть строк. Вот если получили хоть один символ кроме завершающего (даже \n) вот тогда речь уже может идти о строках. Т.к. данные поступили.
Добавлено через 1 минуту хм.. 11 строку Меняем на
Точнее этот флаг будет переименовать. Он в моем варианте означает не наличие пробела предыдущим символом, а то, что мы ждем начало слова.
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
28.06.2012, 15:05 | 13 | |||||
1
|
28.06.2012, 16:16 [ТС] | 14 | |||||
спасибо конечно но мне к сожалению надо без всяких stl и прочих с++ заваротов (((
Добавлено через 2 минуты блин мне надо еще реализовать для цикла while do что то как то не получается подскажи что не так я делаю ?
0
|
28.06.2012, 16:38 | 15 | |||||
я не великий гуру, но вроде это не должно работать.
Добавлено через 3 минуты Вы наверное хотели написать:
Кроме того если между словами поставить табуляцию без пробела, то будет учтено только одно слово
1
|
28.06.2012, 16:46 | 17 | |||||
Так просто в тело do while добавь из первого варианта switch и его содержимое.
И будет почти так же. Для полного счастья останется только в этот switch добавить
1
|
28.06.2012, 16:59 | 19 |
В коде выше у вас. Используются "if", а в первом варианте switch ... case...
0
|
28.06.2012, 16:59 | |
28.06.2012, 16:59 | |
Помогаю со студенческими работами здесь
19
Напишите программу подсчета суммарного числа букв 'а' и букв 'b' в данной строковой переменной Составить программу подсчета в тексте слов, состоящих из одинаковых букв Ввести несколько строк текста, и использовать функцию strtok, для подсчета общего количества слов Определить количество букв, слов и строк Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |