Войти

Показать полную графическую версию : помогите решить задачу


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

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

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

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

pva
21-05-2004, 11:23
#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;
}

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




© OSzone.net 2001-2012