Здравствуйте, 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>>