Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > ошибка поиска


Автор: xcf 5.6.2006, 00:36
кто может сказать почему не работает поиск
Код

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
int i,n=3;

struct PLANT
    {
     char rod[20];
     char vid[20];
     char naz[20];
     PLANT*Next;
    };
PLANT *V_Nachalo(PLANT*First,PLANT x)
    {
     PLANT *Vsp;
     Vsp=new(PLANT);
     strcpy(Vsp->rod,x.rod);
     strcpy(Vsp->vid,x.vid);
     strcpy(Vsp->naz,x.naz);
     Vsp->Next=First;
     First=Vsp;
     return First;
     }
PLANT *V_Spisok(PLANT*Pred,PLANT x)
     {
        PLANT*Vsp;
        Vsp=new(PLANT);
        strcpy(Vsp->rod,x.rod);
        strcpy(Vsp->vid,x.vid);
        strcpy(Vsp->naz,x.naz);
        Vsp->Next=Pred->Next;
        Pred->Next=Vsp;
        return Vsp;
        }
void Print(PLANT *First)
    {
     PLANT *Vsp;
     //PLANT x;
     Vsp=First;
     cout<<"ROD   |         VID   | NAZVANIE\n";
     while(Vsp)
    {
         cout<<Vsp->rod<<"  "<<Vsp->vid<<"  "<<Vsp->naz<<"  \n";
         Vsp=Vsp->Next;
     }
     cout<<"\n";
    }
PLANT *Iz_Nachala(PLANT *First)
        {
         PLANT *Vsp;
         Vsp=First->Next;
         delete First;
         return Vsp;
        }
int Pust(PLANT *First)
         {
            return !First;
         }
     PLANT *Ochistka(PLANT *First)
        {
         while(!Pust(First)) First=Iz_Nachala(First);
                    return First;
        }
void Poisk(PLANT *First)       //?????????????????????????????????
        {PLANT *a;
         a=First;
         cout<<"poisk vyberete punkt\n 1.vidy\n2.rody\n";
         int k,i;
         cin>>k;    n=3;
         switch(k)
 {
    case 1:{
                    char vid[20];
                    cout<<"vvedite vid->";
                    cin>>vid;
                    cout<<"ROD   |         VID   | NAZVANIE\n";
                    for(i=0;i<n;i++)
                    if(strcmp(a->vid,vid)==0)
                        {
                         cout.width(18);cout<<a->rod;
                         cout.width(8);cout<<a->vid;
                         cout.width(8);cout<<a->naz<<"\n";
                        }
                 }break;
    case 2:{
                    char rod[20];
                    cout<<"vvedite rod->";
                    cin>>rod;
                    cout<<"ROD   | VID   | NAZVANIE\n";
                    for(i=0;i<n;i++)
                    if(strcmp(a->rod,rod)==0)
                        {
                         cout.width(18);cout<<a->rod;
                         cout.width(18);cout<<a->vid;
                         cout.width(18);cout<<a->naz<<"\n";
                        }
                 }      break;
        default:cout<<"net takogo punkt\n";break;
        }   getch();
        }
int main()
 {
    PLANT p,*S1,*V1;
//    int i,n;
    clrscr();
    S1=NULL;
    cout<<"vvedite rod";
    cin>>p.rod;
    cout<<"vvedite vid";
    cin>>p.vid;
    cout<<"vvedite naz";
    cin>>p.naz;
    S1=V_Nachalo(S1,p);
    n=3;
    V1=S1;
    for(i=1;i<n;i++)
     {
        cout<<"vvedite rod";
        cin>>p.rod;
        cout<<"vvedite vid";
        cin>>p.vid;
        cout<<"vvedite naz";
        cin>>p.naz;
        V1=V_Spisok(V1,p);
        clrscr();
     }
    cout<<"Spisok\n";
    Print(S1);
    V1=S1;
    Poisk(S1);
    S1=Ochistka(S1);
    getch();
 }

надеюсь на скорую помощь 

Автор: Rockie 5.6.2006, 02:08
у меня работает...  компилятор BCBuilder 6. правда печатется по три раза но ищет правильно.
 

Автор: xcf 5.6.2006, 06:39
я в BC 3.1 писал, и там просто не чего не показывает 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)