Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   помогите решить задачу (http://forum.oszone.net/showthread.php?t=29704)

Guest 20-05-2004 02:22 205432

вот задача: Составить программу для определения средней длины слова входного текста, заканчивающегося точкой. Слова в тексте разделяются запятыми и/или пробелами.
Пример:
Вход: Новый год, 8-е марта.
Результат: средняя длина слова = 4.00

как это реализовать ума не приложу, если не трудно помогите пожалуйста, заранее благодарен 8)

Prisoner 20-05-2004 03:30 205433

Алгоритм подскажу, с кодом сложнее :).
1) Разделить вх. текст на слова (разделители - , и _)
2) проходя по всему массиву строк (наши слова) суммируем длины строк в какую-либо переменную S.
3) S делим на количество строк в массиве

Можно сразу, на лету, то есть анализировать ввод и при встретившемся разделителе накапливать информацию о длине слова и их количестве. При точке на входе выполнить вычисления и вывести результат.

pva 21-05-2004 11:23 205434

Код:

#include<sstring>

int parse(const char* s)
{
 *long wordlens = 0;
 *int * *wordcount = 0;
 *stringstream is(s);
 *string st;
 *while(is>>st) {
 * * int last = st.size()-1;
 * * switch (st[last]) {
 * * * * case ',':
 * * * * case '.':
 * * * * * * if(last>0) {
 * * * * * * * *wordlens += last;
 * * * * * * * *wordcount ++;
 * * * * * * }
 * * }
 *}
 *return (double)wordlens/wordcount;
}

[s]Исправлено: Prisoner, 4:47 22-05-2004[/s]


Время: 06:36.

Время: 06:36.
© OSzone.net 2001-