Re: Задачка...
От: Рома Мик Россия http://romamik.com
Дата: 03.12.05 10:58
Оценка:
Здравствуйте, Mah3, Вы писали:

M>Помогите мне пожалуйста решить задачку:

M> В заданном предложении указать слово, в котором
M> доля гласных(A,E,I,O,U) максимальна.
M>Моих знаний хватает, разве что на то, как посчитать количество слов в предложении или кол-во букв в слове..
M>Язык программирования: Си.
Во за пару минут набросал, только не компилировал ни разу:
char const * SolveProblem(char const * p)
{
    if(!p || !*p)
        return 0;
    float maxVowelPart = 0;
    char const * result = 0;
    int vowelCount = 0;
    char const * currentWord = s;
    do
    {
        if(' ' == *p || '\t' == *p || '\r' == *p || '\n' == *p || 0 == *p)
        {
            unsigned wordLen = p - currentWord;
            if(wordLen)
            {
                float vowelPart = vowelCount / wordLen;
                if(vowelPart > maxVowelPart)
                {
                    maxVowelPart = vowelPart;
                    result = currentWord;
                }
                currentWord = p + 1;
                vowelCount = 0;
            }
        }
        else if('A' == *p || 'E' == *p || 'I' == *p || 'O' == *p || 'U' == *p)
            ++vowelCount;
    } while(*p++ != 0)
    return result;
}
... << RSDN@Home 1.2.0 alpha rev. 619>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.