В задаче нужно, чтобы программа выбрала слово, где больше всего гласных, а потом вывести их процент в выбранном слове. Как раз с процентами проблема. Хотела сначала посчитать кол-во самих гласных, но тут всегда выходит одно и тоже число, причем несколько раз. Чую, споткнулась на ровном места. Может вообще есть более простой способ?
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include<cstdlib>
#include <iostream>
#include <conio.h>
#define max 150
using namespace std;
int main() {
setlocale (LC_ALL, "RUS");
cout<<"Введите слова: "<<endl;
char input[256];
const char* s = input;
fgets(input, sizeof input / sizeof(char), stdin);
while (*s && !isalpha(*s))
s++;
const char* result = s;
double resultPart = .0;
while (*s) {
//Читаем слово.
const char* wordStart = s;
int vowelCount = 0, consonantCount = 0;
while (*s && isalpha(*s)) {
if (strchr("aeiouy", *s))
vowelCount++;
else
consonantCount++;
s++;
}
double part = (double)vowelCount / (vowelCount + consonantCount);
if (part > resultPart) {
resultPart = part;
result = wordStart;
}
while (*s && !isalpha(*s))
s++;
int n, c1=0, c2=0, c3=0, c4=0, c5=0, c6=0;
char result[max];
for(n=0;n!=max;n++)
{
if (result[n]=='a')
c1=c1+1;
if (result[n]=='e')
c2=c2+1;
if (result[n]=='y')
c3=c3+1;
if (result[n]=='u')
c4=c4+1;
if (result[n]=='i')
c5=c5+1;
if (result[n]=='o')
c6=c6+1;
};
{
cout<<"Кол-во: "<<endl;
cout<<("%d,%d,%d,%d,%d,%d",c1,c2,c3,c4,c5,c6)<<endl;
}
}
cout<<"Результат: "<<endl;
while (*result && isalpha(*result))
putchar(*result++);
putchar('\n');
}