Линейный список. Поиск

Рейтинг: 0Ответов: 1Опубликовано: 19.04.2015

Помогите исправить код пожалуйста.

Программа правильно работает,но после вывода на экран нужного элемента просто зависает.

void find()
{
    car *p, *temp;
    char sp[10];
    clrscr();
    printf("Vvedite model' mashini,kotoruiu hotite naiti: ");
    scanf("%s", &sp);
    p = head;
    while (p == NULL)
    {
        if(strcmp((p->model), sp) == 0)
        {
            printf("[Marka]\t[Model]\t[Cvet]\t[Strana]\t[Cena]\n");
            printf("%s", p->marka);
            printf("\t%s\t", p->model);
            printf("%s\t", p->cvet);
            printf("%s", p->strana);
            printf("\t\t%s\n", p->cena);
            p = p->next;
        }
    }
}

Пользуюсь Borland C 3.1,пишу на Си. Заранее спасибо

Ответы

▲ 3

Вы переходите к следующему элементу в цикле только если strcmp вернёт 0. Поэтому цикл после найденного элемента топчется на месте. 30 секунд в отладчике сэкономили бы вам 5 минут на регистрацию и формулировку вопроса.