Программа не выходит из цикла - C (СИ) (79365)

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

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

Пытаюсь написать программу на С++, которая должна сравнить 3 слова, и если одно из слов полностью входит в другое слово, выдать ответ "да". Причём слова надо вводить в символьном массиве, т.к. тип string компилятором не поддерживается. Вот код:
#include <stdio.h>
#include <conio.h>
void main(){
 
char m[3][6];
int i, a, b, k, w;
printf("Введите элементарный код для первого символа алфавита сообщений\n");
for(i=0; i<4; i++)
scanf("%c", &m[1][i]);
 
printf("Введите элементарный код для второго символа алфавита сообщений\n");
for(i=0; i<4; i++)
scanf("%c", &m[2][i]);
 
printf("Введите элементарный код для третьего символа алфавита сообщений\n");
for(i=0; i<4; i++)
scanf("%c", &m[3][i]);
 
for(a=0, b=0, k=1; w=2; ) {
if (m[a][b]=m[a+k][b]) b+1;
else {k+1; b=1;};
if (k=3) {a+1; k=1;};
if (m[a][b]=' ') w=1;
if (a=3) w=0;
printf ("m[%d][%d]", a, b);}
 
if (w=1) printf ("Не обладает свойством префикса*");
else printf ("Обладает свойством префикса");
 
getch();
clrscr();}
Никак не пойму в чём ошибка, уже целый час над текстом бьюсь, ничего не получается. На выходе после ввода данных мелькает m[3][1]m[3][1] и так до бесконечности. Вроде выход из цикла сделал (значение w изменяется в двух случаях), может что-то с памятью ещё не сделал?

Решение задачи: «Программа не выходит из цикла»

textual
Листинг программы
for(b=0, w=0; w==0 && k==0; )

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


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

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

10   голосов , оценка 4.1 из 5
Похожие ответы