Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2016, 23:09   #1
Кристина1998
Форумчанин
 
Регистрация: 01.11.2016
Сообщений: 110
По умолчанию Посчитать количество гласных в слове (на СИ)

Код:
#include <stdio.h>
#include <locale.h>
#include <windows.h>

	/*
		вывести слова строки, заканчивающиеся на гласные

		метод алгоритм. дедукции (нахождение искомого)

		1. опредляем искомую величину (величины) (данное)
			slovo (массив)
		2. искать его значение (первую букву, вторию и тд)



	 */

int vy_slovo ( char str [], int i );

int main() {
//-------------------------


	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);

//printf ( "%i", 'z' );

	char
		str[256] = " (hello bye chao world hey ) "

	;



/*
	printf("Введите строку (латиница, нижний регистр): "); //ввели строку
	gets(str);
//*/


//	printf("%s", str);
//	printf(str);

	/*
		1. пройдем по строке до конца слова
		2. если пследняя буква - гласная - выводим слово
		3. повторить шаг 1
	 */

	// 1. пройдем по строке от начала слова до конца слова


	int i = 0;

	do {

		i = vy_slovo ( str, i ); // в конце поиска вернуть 0

	} while ( i );

	return 0;

//-------------------------
} // main


int vy_slovo ( char str [], int i ) {
//-------------------------

	char
		slovo [256]
		, s

	;
	int j = 0;

	for(  i ; str [ i ] ; i ++ ) { // знак (не буква) в строке

		 /*
				1. ищем начало слова - первую букву
				2. записываем слово
		  */

		s = str [ i ]; // символ

		//
		if ( s >= 'a' && s <= 'z' )
		{ // это буква! а не что попало

			slovo [ j++ ] = s;

		}
		else
		{ // это не буква

			// если слово не началось - ничего не делаем (идем к след. символу сторки)
			// иначе проверяем посл. б и выводим слово

			if ( j )	// то же самое, что j != 0
			{ // это уже конец слова - не первая буква

				s = slovo [ j - 1 ]; // последняя буква слова

				// пров. посл. букву
				if (
						s == 'a' || s == 'e' || s == 'i'
						|| s == 'o' || s == 'u' || s == 'y'
					)
				{ // последняя буква - наша гласная

					slovo [ j ] = 0;
					printf ( "[%s]\n", slovo );


				}
				return i;
			}

		}


	} // for

	return 0;

//-------------------------
} // vy_slovo
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 19.11.2016 в 23:24.
Кристина1998 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет гласных букв в слове santafer Lazarus, Free Pascal, CodeTyphon 4 28.11.2015 22:00
Составьте программу подсчета различных гласных букв в слове Х. Аля321 Помощь студентам 2 19.12.2014 13:47
Написать функцию, возвращающую количество гласных в произвольном слове (С) Aaaaa111 Помощь студентам 0 20.05.2012 13:15
количество символов в слове jagger1435 Помощь студентам 3 18.02.2011 21:02
Доля гласных в слове xakkkkker Общие вопросы Delphi 2 17.04.2010 18:50