Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
XXXAlex
0 / 0 / 0
Регистрация: 26.02.2008
Сообщений: 5
#1

Сосчитать Гласные и Согласные в словах - C++

02.05.2008, 00:11. Просмотров 1160. Ответов 2
Метки нет (Все метки)

Some languages use many more vowels than others. For example, in Hawaiian “Puu Kaa Lani” has
6 vowels and 4 consonants.

Write a program that inputs a line of text, calculates the ratio of vowels to consonants and prints that line with the corresponding ratio. Numbers, spaces and punctuation do not count, for example May 26, 1999 has a ratio of 1 /2. The program should repeat the process until the user enters an empty line.
At the end, it should write the lines with the highest and lowest ratio. It should count only letters, disregarding any other character.
Note: A, a, E, e, I, I, O, o, U, u are vowels(гласные) and other letters are consonants(согласные).

Написал программу- Сосчитать Гласные и Согласные в словах
У меня считает только в последней введенной строчке(Kellogg Competition) а не в первой(Puu Kaa Lani) и поэтому я немогу сосчитать максимальный(highest ratio) и минимальный(lowest ratio) коэфицент между первой и второй строчкой.

Помогите чуть доделать программу

Вот так должно выглядеть:
Sample Input and Output:
Please enter any text> Puu Kaa Lani
Do you wish to continue? (Y/N)
Y
Please enter any text> Kellogg Competition
Do you wish to continue? (Y/N)
N

“Puu Kaa Lani” vowel to consonant ratio is: 6/4
“Kellogg Competition ” vowel to consonant ratio is: 7/11
The line with the lowest ratio is: “Kellogg Competition” ratio vowel to consonant is: 0.6

The line with the highest ratio is: “Puu Kaa Lani” vowel to consonant ratio: 1.5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
char retry = 'y';
string s;
 
int vowels=0;
int consonant=0;
int lowest=0;
int highest=0;
 
while (retry == 'y' || retry == 'Y')
{
    cout <<"\nPlease enter text: ";
    cin >> s;
    
    cout << "\nDo you wish to continue? (Y/N)"<<endl;
    cin >> retry;
}
 
for (int i=0; i<int(s.size()); ++i)
{
if (s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u'
    || s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U')
++vowels;
else
++consonant;
}
 
cout << "\nTotal vowels are: "<<vowels << endl;
cout << "\nTotal Consonants are: "<< consonant << endl;
cout << "\nConsonant ratio are: "<< vowels << "/" << consonant << endl;
 
if ( vowels <= consonant )
 
cout << "\nThe line with the lowest ratio: " << lowest << endl;
 
cout << "\nThe line with the highest ratio is: "<< highest << endl;
 
_getch();
return 0;
}
Thanks

Добавлено через 18 часов 9 минут
help!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2008, 00:11     Сосчитать Гласные и Согласные в словах
Посмотрите здесь:

Сгруппировать гласные и согласные буквы - C++
Сгруппировать в массиве символы. Сначала идут гласные а потом согласные буквы английского алфавита.Символы задаются случайно в коде...

Найти все гласные буквы в словах - C++
дано натурально число n ,и символы S1,S2,S3....группа символов ,которые разделены пробелами и не имеют в середине себя пробелов будем...

Определить чередуются ли в строке st гласные и согласные буквы - C++
Дана строка st при инициализации, длиной не более 20 символов, которая может состоять из цифр,малых латинских букв, знаков + - * / ; , . (...

Вывести, в скольких словах текста встречаются гласные буквы - C++
Дана строка, содержащая текст. Вывести, в скольких словах этого текста встречаются гласные буквы. Ответ должен приводиться в грамматически...

Вывести все глухие согласные (без повторений), которые встретились в двух самых коротких словах - C++
Помогите или хотя бы натолкните на мысль чайника в программировании, пожалуйста! Итак, дана следующая задача: Дан массив из n слов...

Чередовать согласные с двух строк, если совпадают гласные то выводить их только один раз - C++
Задание: чередавать согласные с двух строк, если совпадают гласные то выводить их только один раз. Например: строка строки Вывод: ...

Очереди: одна должна содержать гласные буквы, другая - согласные буквы; чтение из файла - C++
помогите написать программу. я понимаю как ее сделать, но не могу реализовать:( В файле записано несколько предложений, которые могут...

Дано три строки,нужно вывести первую,удалив из нее гласные,содержащиеся во второй и удвоив согласные,содержащиеся в третьей - C++
Дано три строки,нужно вывести первую,удалив из нее гласные,содержащиеся во второй и удвоив согласные,содержащиеся в третьей Например:...

Сосчитать количество единиц - C++
Сосчитать количество единиц в двоичной записи числа i.

Сосчитать сколько рядов - C++
Если в скобках указана команда или переменная, тогда их обязательно надо использовать при выполнении задания. Ввести в файл list.txt всю...

Сосчитать ряд тейлора в точках - C++
функция е2х4, отрезок , точность 10-4, отрезок делится на 5 узловых точек, в каждой точке посчитать ряд. собственно сумма считается, но...

Сосчитать количество файлов в директории - C++
Здравствуйте, совсем недавно начал осваивать C++ Получил задание: &quot;Ввести в консоль директорию и подсчитать файлы в ней и её...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,189
Завершенные тесты: 1
03.05.2008, 00:21     Сосчитать Гласные и Согласные в словах #2
Код
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
const char vowels[]="AaEeIiOoUu";
char s[128],mins[128],maxs[128];
double r,minr=+1/0.0,maxr=-1/0.0;
clrscr();
for (;;) {
    printf("Enter some string (empty string to exit): ");
    if (!*gets((char*)&s)) break;
    int i,n=0;
    for (i=0; s[i]; i++)
        if (strchr(vowels,s[i])) n++;
    if (i!=n) r=n/(i-n); else r=+1/0.0;
    if (r<minr) {minr=r; strcpy((char*)&mins,(char*)&s);};
    if (r>maxr) {maxr=r; strcpy((char*)&maxs,(char*)&s);};
    printf("The ratio of vowels to consonants is %.2f\n",r);
    };
printf("The maximal ratio is %.2f (%s)\n",maxr,maxs);
printf("The minimal ratio is %.2f (%s)\n",minr,mins);
getchar();
}
Добавлено через 7 минут
Ой. Там ошибочка, а редактирование сообщения почему-то не работает.
Код
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
const char vowels[]="AaEeIiOoUu";
const char consonants[]="BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvWwXxYyZz";
char s[128],mins[128],maxs[128];
double r,minr=+1/0.0,maxr=-1/0.0;
clrscr();
for (;;) {
    printf("Enter some string (empty string to exit): ");
    if (!*gets((char*)&s)) break;
    int v=0,c=0;
    for (int i=0; s[i]; i++) {
        if (strchr(vowels,s[i])) v++;
        if (strchr(consonants,s[i])) c++;
        }
    if (c) r=v/c; else r=+1/0.0;
    if (r<minr) {minr=r; strcpy((char*)&mins,(char*)&s);};
    if (r>maxr) {maxr=r; strcpy((char*)&maxs,(char*)&s);};
    printf("The ratio is %.2f (vowels:%d, consonants:%d)\n",r,v,c);
    };
printf("The maximal ratio is %.2f (%s)\n",maxr,maxs);
printf("The minimal ratio is %.2f (%s)\n",minr,mins);
getchar();
}
XXXAlex
0 / 0 / 0
Регистрация: 26.02.2008
Сообщений: 5
03.05.2008, 01:13  [ТС]     Сосчитать Гласные и Согласные в словах #3
всем спасибо
тема закрыта
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru