Не работает прога для поиска определенного слова в массиве строк - C (СИ)
Формулировка задачи:
Найти в массиве строк самое длинное слово, оканчивающееся на гласную букву, и вывести его.
Вот что я набросал
Когда прогоняю через отладчик зависает на этой строке if (str[i][k+1] == (' ' || '\0') && str[i][k] == ('a' || 'e' || 'y' || 'u' || 'o' || 'i') )
Заранее спасибо
# include <stdio.h> # include <conio.h> # include <string.h> # include <ctype.h> # include <stdlib.h> # define N 1 # define M 81 int main () { char str[N][M] = {"i can write computery programma "}; int i, j, k, a, b, count = 0; clrscr(); for (i = 0; i < N; i++) puts (str[i]); for (i = 0; i < N; i++) for (j = 0; j < strlen(str[i]); j++) //j 㢥«ЁзЁў*Ґ¬ ** Є { if (isalpha (str[i][j]) ) for (k = j; str[i][k] != (' ' || '\0'); k++ ) if (str[i][k+1] == (' ' || '\0') && str[i][k] == ('a' || 'e' || 'y' || 'u' || 'o' || 'i') ) { if (count < k - j) { a = i; b = j; count = k - j; } } j =+k; } for(j = b; j-b < count; j ++) printf ("%c", str[a][j]); getch(); return 0; }
Решение задачи: «Не работает прога для поиска определенного слова в массиве строк»
textual
Листинг программы
if (count < k - j) { a = i; b = j; * count = k - j; }
Объяснение кода листинга программы
В представленном коде выполняется следующая последовательность действий:
- Проверяется условие
count < k - j
. - Если условие истинно, то выполняется следующий блок кода:
- Переменная
a
получает значениеi
. - Переменная
b
получает значениеj
. - Значение переменной
count
присваивается переменнойk - j
.
- Переменная
- После выполнения этого блока кода, программа продолжает работу с основной веткой, где находятся операции, выполняемые с переменными
a
,b
иcount
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д