Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Visual C++ / С/C++

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 01.05.2008, 05:07   #1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 18.03.2008
Сообщений: 6
Репутация: 0
Exclamation Помогите(сдавать срочно)-Сосчитать Гласные и Согласные в словах(код внутри)



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

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


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(согласные).



Вот так должно выглядеть:
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


Код:
#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;
}

большое спасибо!!!!
XXXAlex вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Герман Греф: Целеполагание — главный драйвер человекаречные экскурсиимаска театр - RedKassa.ruapi яндекс таксиогнезадеживающий клапан-01


Старый 01.05.2008, 19:02   #2
k0t_
Пользователь
 
Пол:Мужской
Регистрация: 27.02.2008
Адрес: Днепропетровск, Украина
Сообщений: 149
Репутация: 802
По умолчанию Ответ: Помогите(сдавать срочно)-Сосчитать Гласные и Согласные в словах(код внутри)

Выдели подсчет сообщенийв отдельную функцию. Если брать за основу твой код то это будет выглядеть так:
Код:
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include <string>
using namespace std;
int vowels=0; //Блок глобальных переменных
int consonant=0;
int lowest=0;
int highest=0;
//Объевление и реализация функции подсчета
void calcul(string s){
 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;
}

}
int main()
{
char retry = 'y';

string s;

while (retry == 'y' || retry == 'Y')
{
	cout <<"\nPlease enter text: ";
	cin >> s;
	calcul(s);//Вызов функции
	cout << "\nDo you wish to continue? (Y/N)"<<endl;
	cin >> retry;
}


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;
}
естественно можно сделать это не так коряво, как у тебя - но это уже делай сам.
k0t_ вне форума
 
Ответить с цитированием Вверх
Старый 01.05.2008, 23:15   #3
XXXAlex
Неактивный пользователь
 
Пол:Мужской
Регистрация: 18.03.2008
Сообщений: 6
Репутация: 0
По умолчанию Ответ: Помогите(сдавать срочно)-Сосчитать Гласные и Согласные в словах(код внутри)

k0t_ а вчем разница между моим и твоим кодом = результат выводиться одинаковый

Добавлено через 2 минуты
"не так коряво, как у тебя" -
c начал заниматься только 4недели назад

помоги доделать а то я застрял если можеш

Последний раз редактировалось XXXAlex; 01.05.2008 в 23:18.. Причина: Добавлено сообщение
XXXAlex вне форума
 
Ответить с цитированием Вверх
Старый 02.05.2008, 10:43   #4
zss
Постоялец
 
Пол:Мужской
Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
По умолчанию Ответ: Помогите(сдавать срочно)-Сосчитать Гласные и Согласные в словах(код внутри)

Результат не может быть одинаковый: в первом случае подсчет ведется вне
цикла ввода (т.е. только по последней строке), а во втором внутри цикла
(т.е. по всем строкам).
__________________
Сергей Сергеевич
zss вне форума
 
Ответить с цитированием Вверх
Старый 02.05.2008, 14:37   #5
k0t_
Пользователь
 
Пол:Мужской
Регистрация: 27.02.2008
Адрес: Днепропетровск, Украина
Сообщений: 149
Репутация: 802
По умолчанию Ответ: Помогите(сдавать срочно)-Сосчитать Гласные и Согласные в словах(код внутри)

Цитата:
Сообщение от XXXAlex Посмотреть сообщение
k0t_ а вчем разница между моим и твоим кодом = результат выводиться одинаковый

Добавлено через 2 минуты
"не так коряво, как у тебя" -
c начал заниматься только 4недели назад

помоги доделать а то я застрял если можеш

Сколько недель ты занимаешься программированием я вроде не спрашивал - это значит что меня это, мягко говоря, не интересует. Ты спросил почему считает только в последней строчке а не в первой я - показал в чем одна из ошибок. Но это вовсе не значит что я буду за тебя разбираться с классами ввода-вывода.
Я бы переделал твой код примерно таким образом
Код:
void calcul(char *s){ //В использовании string тут нет необходимости
int strl = strlen(s);//Получаем размер массива 
for (int i=0;i < strl; ++i)
{
 switch(s[i]){
   case 'a':
   case 'A':
   case 'E':
   case 'e':
   case 'i':
   case 'I':
   case 'o':
   case 'O':
   case 'u':
   case 'U':
     ++vowels;
     break;
   default:
   ++consonant;
    break;
  }   
}
}

main(){
char retry='y';
char buffer[128] = {0};

while (retry == 'y' || retry == 'Y')
{
	retry = 0;
	cout <<"\nPlease enter text: ";
	cin.getline(buffer,128,'\n');
	calcul(buffer);//Вызов функции
	cout << "\nDo you wish to continue? (Y/N)"<<endl;
	retry = getch();
	cin.clear(); 
}
... //Ну и так далее.
Добавлено через 7 минут
Кстати, пробелы тоже надо учитывать. Я думаю с этим сам разберешься.

Последний раз редактировалось k0t_; 02.05.2008 в 14:44.. Причина: Добавлено сообщение
k0t_ вне форума
 
Ответить с цитированием Вверх
Старый 03.05.2008, 00:00   #6
XXXAlex
Неактивный пользователь
 
Пол:Мужской
Регистрация: 18.03.2008
Сообщений: 6
Репутация: 0
По умолчанию Ответ: Помогите(сдавать срочно)-Сосчитать Гласные и Согласные в словах(код внутри)

спасибо за помощь.
сижу разбираюсь.

Добавлено через 3 минуты
"Сколько недель ты занимаешься программированием я вроде не спрашивал"
.........я просто ответил почему так коряво написано. извини если этим тебя задел.

Последний раз редактировалось XXXAlex; 03.05.2008 в 00:03.. Причина: Добавлено сообщение
XXXAlex вне форума
 
Ответить с цитированием Вверх
Старый 03.05.2008, 01:53   #7
seimur
Неактивный пользователь
 
Пол:Мужской
Регистрация: 04.12.2007
Сообщений: 32
Репутация: 4
Smile Ответ: Помогите(сдавать срочно)-Сосчитать Гласные и Согласные в словах(код внутри)

Надеюсь это то, что вам надо
Код:
#include <iostream>
#include <cctype>

#define _BUFSIZE 100

using namespace std;

const char* Vowels = "aeiou";

int main(int argc, char* argv[])
{
	char sentence[_BUFSIZE + 1];
	double lowest_ratio = -1, highest_ratio = -1;

	do 
	{
		fflush(stdin);
		cout << "Please enter the sentence: ";
		cin.getline(sentence, _BUFSIZE);

		int vowels = 0, consonants = 0;
		for (int i = 0; sentence[i]; i++)
		{
			if ( isalpha( sentence[i] ) )
			{
				if ( strchr( Vowels, tolower( sentence[i] ) ) != NULL )
					vowels++;
				else
					consonants++;
			}
		}

		double ratio = double(vowels)/consonants;
		lowest_ratio = ( lowest_ratio == -1 )? ratio: min(lowest_ratio, ratio);
		highest_ratio = ( highest_ratio == -1 )? ratio: max(highest_ratio, ratio);

		cout << "Ratio [vowels/consonants]: " << ratio << "\n\n";
		cout << "Do you want to continue[Y/N]? ";
	} while ( tolower(getchar()) == 'y' );

	cout << "Lowest ratio: " << lowest_ratio << endl;
	cout << "Highest ratio: " << highest_ratio << endl;
	return (0);
}
seimur вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите срочно! AnnaS Скорая помощь 11 14.03.2010 00:18
Как сосчитать одинаковые записи в БД. hack Delphi 6 17.02.2010 11:36
помогите пожалуста c программой на с++(сдавать срочно) XXXAlex Visual C++ / С/C++ 2 19.03.2008 05:30
??????помогите срочно LISER Архив 2 20.01.2008 19:51
Жизнь в ста словах . . . Mademoiselle Творчество наших читателей 8 12.06.2007 15:18

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 05:29. Часовой пояс GMT +3.


Copyright ©2004 - 2025 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.05589 секунды с 11 запросами