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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2013, 13:09   #1
lekksa
 
Регистрация: 29.07.2013
Сообщений: 3
По умолчанию Дан текст. Указать среди слов , начинающееся на "к" самое

Дан текст. Указать среди слов , начинающееся на "к" самое короткое слово.(через строки)

Ребята помогите решить задачку пожалуйста. Кто откликнется буду очень благодарна .
lekksa вне форума Ответить с цитированием
Старый 29.07.2013, 13:14   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Какой язык программирования????
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 29.07.2013, 15:51   #3
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Код:
#include "stdio.h"
#include "string.h"
#include "memory.h"
#include "locale.h"

int main()
{
  char* text = new char[1500];
  memset(text,0,1500);
  strcpy(text, "Однажды в студеную зимнюю пору я из лесу вышел был сильный мороз.");
  strcat(text, "Собака, курившая шмаль под забором меня испугавшись отправилась прочь.");
  strcat(text, "Но нет в этом сказе на букву \"к\" слова, поэтому кот.");
  strcat(text, "катушка катилась с крутого обрыва, и к ней приближался содат синих взвод");
  int min = strlen(text);
  char* p = strtok(text,"\n .,");
  char* tmp = NULL;
  if(p)
  {
	while(p)
	{
	  if(p[0] == 'к' && strlen(p) < min)
	  {
		if(tmp)
		  delete [] tmp;
		tmp = new char[strlen(p)+1];  
		strcpy(tmp,p);
		min = strlen(p);
	  }
	  p = strtok(NULL," \n.,");
	}
  }
  setlocale(LC_ALL,"Russian");
  printf("%s",tmp);
  delete [] tmp;
  return 0;
}
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 29.07.2013, 16:20   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
% считывает слово
get_word(S):- 
  get_char(C), (
    (char_type(C, white); char_type(C, end_of_file)), !, S = []
    ; get_word(SS), char_code(C, Code), S = [Code|SS]
  ).

% считывает список слов
get_all_words(L):-
	get_word(H), (
		H = [], !, L = []
		; get_all_words(T), L = [H|T]
	).

% выводит список слов
print_strings([]):-!.
print_strings([H|T]):-
	string_to_list(S, H), write(S), nl, print_strings(T).

% возвращает список слов, начинающихся с заданного симола
filter_by_first_letter([], _, []):-!.
filter_by_first_letter([[H1|T1]|T2], H1, [[H1|T1]|TR2]):-
	!, filter_by_first_letter(T2, H1, TR2).
filter_by_first_letter([_|T2], H1, TR2):-
	filter_by_first_letter(T2, H1, TR2).

% возвращает самое длинное слово списка
longest_word([H|T], R):-
	length(H, HLen),
	longest_word(H, HLen, T, R).
longest_word(R, _, [], R):-!.
longest_word(CW, CWLen, [H|T], R):-
	length(H, HLen), HLen > CWLen, !, longest_word(H, HLen, T, R);
	longest_word(CW, CWLen, T, R).

goal:-
	see('input.txt'), get_all_words(L), seen, 
	%print_strings(L), nl, write('---------------------'), nl, 
	"к" = [C|_], filter_by_first_letter(L, C, LC),
	%print_strings(LC), nl, write('---------------------'), nl, 
	longest_word(LC, Res), print_strings([Res]).
Если слов несколько выведется первое.
rrrFer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение ячеек в формате "дата" и "текст" АлИван Microsoft Office Excel 2 26.09.2012 12:14
Дан файл f. Найти самое длинное слово среди слов, вторая буква которых есть 'e'. Работа с файлами. Делфи 7. Fatalita Помощь студентам 0 30.05.2012 04:24
Дан набор слов, разделенных ";" набор заканчивается ":".Определить ,сколько в нем слов,заканчивается буквой а _Алексей_ Помощь студентам 1 29.04.2012 15:21
Напечатать текст, удалив из него все цифры и знаки "+" или "–". Язык С++. KaylasMKTY Помощь студентам 8 07.03.2010 21:35
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28