Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


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

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


Ответ
 
Опции темы
Старый 23.11.2017, 18:25   #1
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию Программа находит и длинное и короткое слово можете изменить её так чтобы она находило только короткое слово

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <string.h>
  5. int main()
  6. {
  7. printf("input text: ");
  8. char text[1024];
  9. fgets(text, sizeof(text)-1, stdin);
  10. char* pmax = NULL;
  11. size_t pmaxlen = 0;
  12. char* pmin = NULL;
  13. size_t pminlen = 0;
  14. char* begin = text;
  15. char* end = text;
  16. while (*end)
  17. {
  18. for (begin = end; *begin && !isalnum(*begin); ++begin) { ; }
  19. for (end = begin; *end && isalnum(*end); ++end) { ; }
  20. if (begin < end)
  21. {
  22. if ((pmax == NULL) || (pmaxlen < end - begin))
  23. {
  24. pmax = begin;
  25. pmaxlen = end - begin;
  26. }
  27. if ((pmin == NULL) || (pminlen > end - begin))
  28. {
  29. pmin = begin;
  30. pminlen = end - begin;
  31. }
  32. }
  33. }
  34. if (pmax && pmin)
  35. {
  36. printf("\n");
  37. printf("max = %.*s\n", pmaxlen, pmax);
  38. printf("min = %.*s\n", pminlen, pmin);
  39. }
  40. system("pause");
  41. return 0;
  42. }
Александр121 вне форума Ответить с цитированием
Старый 23.11.2017, 19:41   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Вы совсем обленились или действительно ума не хватает заметить в коде мин и макс?
p51x вне форума Ответить с цитированием
Старый 23.11.2017, 20:00   #3
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

Теперь выводит только минимальное значение посмотрите всё лишнее убрал?
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <string.h>
  5. int main()
  6. {
  7. printf("input text: ");
  8. char text[1024]; // ваш массив
  9. fgets(text, sizeof(text)-1, stdin); // вводим предложение( третий аргумент stdin, так что ввод осуществляем с клавиатуры)

  10. char* pmin = NULL;
  11. size_t pminlen = 0;
  12. char* begin = text; // указатель на начало слова
  13. char* end = text; // указатель на конец слова
  14. while (*end) // цикл по всему тестку
  15. {
  16. for (begin = end; *begin && !isalnum(*begin); ++begin) { ; } // цикл пока есть символ в строке и пока он не является
  17. //буквой или цифрой( другими словами, начало очередного слова)
  18. for (end = begin; *end && isalnum(*end); ++end) { ; } // цикл пока есть символ в строке и пока он является цифрой или
  19. // буквой( в конце работы цикла указатель end находится на первом недопустимом символе)
  20. if (begin < end) // сравнение указателей
  21. {
  22. {
  23. }
  24. // далее аналогия только с короткими словами
  25. if ((pmin == NULL) || (pminlen > end - begin))
  26. {
  27. pmin = begin;
  28. pminlen = end - begin;
  29. }
  30. }
  31. }
  32. {
  33. printf("\n");
  34. printf("min = %.*s\n", pminlen, pmin);
  35. }
  36. system("pause");
  37. return 0;
  38. }

Последний раз редактировалось Александр121; 23.11.2017 в 20:02.
Александр121 вне форума Ответить с цитированием
Старый 23.11.2017, 20:25   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Зачем в последнем иф условие на мин убрали?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что бы самое длинное слово и самое короткое тоже выводились? weqw121 Помощь студентам 1 23.10.2017 23:50
самое короткое и самое длинное слово Evelin_18 Помощь студентам 2 09.12.2012 23:44
С# найти самое длинное и самое короткое слово в строке и вывести их Зеленый Чай Помощь студентам 4 06.01.2012 17:40
Простая прога - самое длинное и короткое слово TaylorGang Паскаль, Turbo Pascal, PascalABC.NET 1 29.12.2011 20:54
заменить самое длинное слово, на самое короткое в Delphi сер4ей Помощь студентам 5 05.03.2009 18:40


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS