Προς το περιεχόμενο

Programma se C


mar_kostas13

Προτεινόμενες αναρτήσεις

Έχω ένα προγραμμα σε C που διαχειρίζεται μια διασυνδεδεμένη λίστα.και το μονο που κανω στην αρχη της main ειναι να κανω το head=NULL΄..Έπειτα μεσω ενός μενου επιλογών καλω την Insertion gia εισαγωγη στοιχείων και την Display gia Την εκτυπωση των στοιχειων τισ λιστας. 
Παρακάτω έχω ton ορισμό της λίστας μ και πιο κάτω τις 2 συναρτήσεις την insertion() και την dislpay.
ΣΤΗΝ DISPLAY ο Compiler δεν μπαίνει στην While(εκεί που έχω θαυμαστικά) kai Δεν μπορω να καταλάβω τι διάλο γινετε. Αν μπορει κάποιος παιδια να με Βοηθήσει ..
 
typedef struct list_node{//dhmiourgeia domhs list_node
    char title[40];
    char dis[40];
    int year;
    int pop;
    struct list_node *prev;
    struct list_node *next;
}List;
List *head,*tail;//GLOBAL



void insertion()//syn;arthsh eisagwghs stoixeiwn 
{
    if(head==NULL)//eisagwgh toy prwtoy stoixeiou tou pinaka afou heaed==NULL
       {
        head=(List *)malloc(sizeof (List));
        printf("Titlos bibliou: ");
        scanf("%s",head->title);
        printf("Perigrafh: ");
        scanf("%s",head->dis);
        printf("Etos Ekdoshs: ");
        scanf("%d",&head->year);
        head->pop=0;
        head->next=NULL;
        head->prev=NULL;
        tail=head;
       }
    else            //eisagwgh otan h lista dn einai kenh
       {
        List *cur;
        cur = tail->next;
        cur =(List *)malloc(sizeof (List));
        printf("Titlos bibliou: ");
        scanf("%s",cur->title);
        printf("Perigrafh: ");
        scanf("%s",cur->dis);
        printf("Etos Ekdoshs: ");
        scanf("%d",&cur->year);
        cur->pop=0;
        cur->next=NULL;
        cur->prev=tail;
        tail=cur;
       }
}
void display()//synarthsh ektpwshs stoixeiwn listas
{
  if(head==NULL)
      printf("\nLISTA KENH\n");
  else
     {
      int i=1;
      List *cur;
      cur=head;
      while(cur->next!=NULL)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//exw dokimasei para pola edw
              printf("%dh Ekxwrish->TITLOS:%s   PERIGRAFH:%s   ETOS EKDOSHS:%d  DHMOFILOTHTA:%d.\n",i,cur->title,cur->dis,cur->year,cur->pop);
     }
}
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

Έχω ένα προγραμμα σε C που διαχειρίζεται μια διασυνδεδεμένη λίστα.και το μονο που κανω στην αρχη της main ειναι να κανω το head=NULL΄..Έπειτα μεσω ενός μενου επιλογών καλω την Insertion gia εισαγωγη στοιχείων και την Display gia Την εκτυπωση των στοιχειων τισ λιστας. 

Παρακάτω έχω ton ορισμό της λίστας μ και πιο κάτω τις 2 συναρτήσεις την insertion() και την dislpay.

ΣΤΗΝ DISPLAY ο Compiler δεν μπαίνει στην While(εκεί που έχω θαυμαστικά) kai Δεν μπορω να καταλάβω τι διάλο γινετε. Αν μπορει κάποιος παιδια να με Βοηθήσει ..
 
typedef struct list_node{//dhmiourgeia domhs list_node
    char title[40];
    char dis[40];
    int year;
    int pop;
    struct list_node *prev;
    struct list_node *next;
}List;
List *head,*tail;//GLOBAL

 

 

void insertion()//syn;arthsh eisagwghs stoixeiwn 

{
    if(head==NULL)//eisagwgh toy prwtoy stoixeiou tou pinaka afou heaed==NULL
       {
        head=(List *)malloc(sizeof (List));
        printf("Titlos bibliou: ");
        scanf("%s",head->title);
        printf("Perigrafh: ");
        scanf("%s",head->dis);
        printf("Etos Ekdoshs: ");
        scanf("%d",&head->year);
        head->pop=0;
        head->next=NULL;
        head->prev=NULL;
        tail=head;
       }
    else            //eisagwgh otan h lista dn einai kenh
       {
        List *cur;
 
Εδώ κάντο
        cur = tail->next; 
        cur =(List *)malloc(sizeof (List));
 
Έτσι
 cur =(List *)malloc(sizeof (List));
tail->next = cur;
 
        printf("Titlos bibliou: ");
        scanf("%s",cur->title);
        printf("Perigrafh: ");
        scanf("%s",cur->dis);
        printf("Etos Ekdoshs: ");
        scanf("%d",&cur->year);
        cur->pop=0;
        cur->next=NULL;
        cur->prev=tail;
        tail=cur;
       }
}
void display()//synarthsh ektpwshs stoixeiwn listas
{
  if(head==NULL)
      printf("\nLISTA KENH\n");
  else
     {
      int i=1;
      List *cur;
      cur=head;
      while(cur->next!=NULL)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//exw dokimasei para pola edw
              printf("%dh Ekxwrish->TITLOS:%s   PERIGRAFH:%s   ETOS EKDOSHS:%d  DHMOFILOTHTA:%d.\n",i,cur->title,cur->dis,cur->year,cur->pop);
     }
}

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

 

Έχω ένα προγραμμα σε C που διαχειρίζεται μια διασυνδεδεμένη λίστα.και το μονο που κανω στην αρχη της main ειναι να κανω το head=NULL΄..Έπειτα μεσω ενός μενου επιλογών καλω την Insertion gia εισαγωγη στοιχείων και την Display gia Την εκτυπωση των στοιχειων τισ λιστας. 

Παρακάτω έχω ton ορισμό της λίστας μ και πιο κάτω τις 2 συναρτήσεις την insertion() και την dislpay.

ΣΤΗΝ DISPLAY ο Compiler δεν μπαίνει στην While(εκεί που έχω θαυμαστικά) kai Δεν μπορω να καταλάβω τι διάλο γινετε. Αν μπορει κάποιος παιδια να με Βοηθήσει ..
 
typedef struct list_node{//dhmiourgeia domhs list_node
    char title[40];
    char dis[40];
    int year;
    int pop;
    struct list_node *prev;
    struct list_node *next;
}List;
List *head,*tail;//GLOBAL

 

 

void insertion()//syn;arthsh eisagwghs stoixeiwn 

{
    if(head==NULL)//eisagwgh toy prwtoy stoixeiou tou pinaka afou heaed==NULL
       {
        head=(List *)malloc(sizeof (List));
        printf("Titlos bibliou: ");
        scanf("%s",head->title);
        printf("Perigrafh: ");
        scanf("%s",head->dis);
        printf("Etos Ekdoshs: ");
        scanf("%d",&head->year);
        head->pop=0;
        head->next=NULL;
        head->prev=NULL;
        tail=head;
       }
    else            //eisagwgh otan h lista dn einai kenh
       {
        List *cur;
 
Εδώ κάντο
        cur = tail->next; 
        cur =(List *)malloc(sizeof (List));
 
Έτσι
 cur =(List *)malloc(sizeof (List));
tail->next = cur;
 
        printf("Titlos bibliou: ");
        scanf("%s",cur->title);
        printf("Perigrafh: ");
        scanf("%s",cur->dis);
        printf("Etos Ekdoshs: ");
        scanf("%d",&cur->year);
        cur->pop=0;
        cur->next=NULL;
        cur->prev=tail;
        tail=cur;
       }
}
void display()//synarthsh ektpwshs stoixeiwn listas
{
  if(head==NULL)
      printf("\nLISTA KENH\n");
  else
     {
      int i=1;
      List *cur;
      cur=head;
      while(cur->next!=NULL)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//exw dokimasei para pola edw
              printf("%dh Ekxwrish->TITLOS:%s   PERIGRAFH:%s   ETOS EKDOSHS:%d  DHMOFILOTHTA:%d.\n",i,cur->title,cur->dis,cur->year,cur->pop);
     }
}

 

 

me eswses eyxaristw..!!!!!!!!!!!!!!!!!!!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...