Поиск в линейном списке: программа зависает - C (СИ)
Формулировка задачи:
Помогите исправить код пожалуйста.
Программа правильно работает,но после вывода на экран нужного элемента просто зависает.
void find()
{
car *p, *temp;
char sp[10];
//if(tail==NULL)
//{
//printf("Spisok esho ne sozdan!");
//getch();
//}
//else
//{
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;
}
}
}Решение задачи: «Поиск в линейном списке: программа зависает»
textual
Листинг программы
while (p!=NULL)
Объяснение кода листинга программы
- В данном коде представлен цикл while, который выполняется до тех пор, пока значение переменной
pне станет равнымNULL. - Переменная
pпредставляет собой указатель на первый элемент в связном списке. - Значение
NULLиспользуется для обозначения конца списка. - Внутри цикла while выполняется операция сравнения
p!=NULL, где!=означаетне равно. - Если значение переменной
pне равноNULL, то выполняется блок кода, который зависит от условий, описанных в вопросе. - Если значение переменной
pравноNULL, то цикл while завершается и выполнение программы продолжается после его завершения.