Найти в строке слова, отличные от последнего - C (СИ)

Узнай цену своей работы

Формулировка задачи:

помогите пожалуйста. надо сделать так чтоб отличны от последнего слова , и в слове гласные буквы (a, e, i, o, u) не чередуются с согласными
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. #include <locale.h>
  6. int main()
  7. {
  8. char *ch;
  9. char str[1000];
  10. char mas[50][9];
  11. char q, z, b;
  12. char glas[] = "aeiou";
  13. int i, l, j, e;
  14. int k = 0;
  15. do
  16. {
  17. setlocale(LC_ALL, "rus");
  18. printf("Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству:\n\n");
  19. printf("36)в слове гласные буквы (a, e, i, o, u) чередуются с согласными;");
  20. printf("\nВведите строку:\n");
  21. gets(str);
  22. l = strlen(str);
  23. ch = strtok(str, " .");
  24. for (i = 0; ch != '\0'; i++)
  25. {
  26. if (strlen(ch) > 8)
  27. {
  28. printf("Ошибка!\n");
  29. system("pause");
  30. break;
  31. }
  32. strcpy(mas[i], ch);
  33. ch = strtok(NULL, " .");
  34. k++;
  35. }
  36. printf("\nРезультат :\n");
  37. printf("последнее слово: %s \n \n Строка :", mas[0]);
  38. for (i = 1; i < k; i++)
  39. {
  40. if (strcmp(mas[i], mas[0]) != 0)
  41. {
  42. e = 0;
  43. for (j = 0; j<(strlen(mas[i]) - 1); j++)
  44. {
  45. z = mas[i][j];
  46. b = mas[i][j + 1];
  47. if ((strchr(glas, b) && strchr(glas, z) || (strchr(glas, z) && strchr(glas, b))))
  48. {
  49. e++;
  50. }
  51. }
  52. {
  53. if (e == 0)
  54. printf(" %s", mas[i]);
  55. }
  56. }
  57. }
  58. printf("\nДля выхода нажмите Esc");
  59. printf("\n\n\n\n");
  60. q = getch();
  61. } while (q != 27);
  62. }

Решение задачи: «Найти в строке слова, отличные от последнего»

textual
Листинг программы
  1. #include <stdio.h>
  2.  #include <string.h>
  3.  #include <stdlib.h>
  4.  #include <locale.h>
  5.  int main()
  6.  {
  7.  char *ch;
  8.  
  9.  char str[1000];
  10.  
  11.  char mas[50][9];
  12.  char q, z, b;
  13.  char glas[] = "aeiou";
  14.  int i, l, j, e;
  15.  int k = 0;
  16.  do
  17.  {
  18.  setlocale(LC_ALL, "rus");
  19.  printf("Г„Г*Г*Г* ïîñëåäîâГ*òåëüГ*îñòü, ñîäåðæГ*Г№Г*Гї îò 2 äî 50 ñëîâ, Гў ГЄГ*æäîì ГЁГ§ êîòîðûõ îò 1 äî 8 ñòðî÷Г*ûõ Г«Г*ГІГЁГ*Г±ГЄГЁГµ ГЎГіГЄГў; ìåæäó ñîñåäГ*èìè ñëîâГ*ìè - Г*ГҐ ìåГ*ГҐГҐ îäГ*îãî ïðîáåëГ*, Г§Г* ïîñëåäГ*ГЁГ¬ ñëîâîì - òî÷êГ*. ГЌГ*ГЇГҐГ·Г*ГІГ*ГІГј ГІГҐ ñëîâГ* ïîñëåäîâГ*òåëüГ*îñòè, êîòîðûå îòëè÷Г*Г» îò ïåðâîãî ñëîâГ* ГЁ óäîâëåòâîðÿþò ñëåäóþùåìó ñâîéñòâó:\n\n");
  20.  printf("36)Гў ñëîâå ГЈГ«Г*Г±Г*ûå ГЎГіГЄГўГ» (a, e, i, o, u) ÷åðåäóþòñÿ Г± ñîãëГ*Г±Г*ûìè;");
  21.  printf("\nÂâåäèòå ñòðîêó:\n");
  22.  gets(str);
  23.  l = strlen(str);
  24.  ch = strtok(str, " .");
  25.  for (i = 0; ch != '\0'; i++)
  26.  {
  27.  if (strlen(ch) > 8)
  28.  {
  29.  printf("ГЋГёГЁГЎГЄГ*!\n");
  30.  system("pause");
  31.  break;
  32.  }
  33.  strcpy(mas[i], ch);
  34.  ch = strtok(NULL, " .");
  35.  k++;
  36.  }
  37.  printf("\nÐåçóëüòГ*ГІ :\n");
  38.  printf("ïîñëåäГ*ГҐГҐ ñëîâî: %s \n \n ÑòðîêГ* :", mas[k-1]);
  39.  for (i = 0; i < k; i++)
  40.  {
  41.  if (strcmp(mas[i], mas[k-1]) != 0)
  42.  {
  43.  e = 0;
  44.  for (j = 0; j<(strlen(mas[i]) - 1); j++)
  45.  {
  46.  z = mas[i][j];
  47.  
  48.  b = mas[i][j + 1];
  49.  
  50.  if ((strchr(glas, b) && strchr(glas, z) || (strchr(glas, z) && strchr(glas, b))))
  51.  {
  52.         e++;
  53.  }
  54. if ((strchr(glas, b)==NULL && strchr(glas, z)==NULL || (strchr(glas, z)==NULL && strchr(glas, b)==NULL)))
  55.  {
  56.         e++;
  57.  } 
  58.  
  59.  }
  60.  {
  61.  if (e != 0)
  62.  printf(" %s", mas[i]);
  63.  }
  64.  }
  65.  
  66.  }
  67.  
  68.  printf("\nÄëÿ âûõîäГ* Г*Г*æìèòå Esc");
  69.  printf("\n\n\n\n");
  70.  q = getch();
  71.  } while (q != 27);
  72.  }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы