Announcement

Collapse
No announcement yet.

nhờ tìm lỗi hàm chèn trước

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • nhờ tìm lỗi hàm chèn trước

    em chạy thì báo lỗi phần hàm addhead mông anh chị giải quyết giùm
    PHP Code:
    // danh sach sinh vien.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include "stdio.h"
    #include "conio.h"
    #include "stdlib.h"
    #include "string.h"
    typedef struct sinhvien
    {
        
    char hoten[30];
        
    int mssv;
        
    float diem;
    }
    sv;
    typedef struct tagnode
    {
        
    sv data;
        
    struct tagnode *next;
        
    struct tagnode *prew;
    }
    node;
    typedef struct taglist
    {
        
    node *head;
        
    node *tail;
    }list;
    void creatlist(list &l)
    {
        
    l.head l.tail NULL;
    }
    nodecreatnode(sv x)
    {
        
    node *p;
        
    = new node;
        
    p->data x;
        
    p->next p->prew NULL;
        return 
    p;
    }
    void addhead(list &l,sv x)
    {
        
    node *p;
        
    p=creatnode(x);
        if(
    l.head == NULL)
            
    l.head l.tail p;
        else
        {
            
    p->next l.head;
            
    l.head -> prew p;
            
    l.head p;
        }
    }
    void addtail(list &l,node *p)
    {
        if(
    l.head == NULL)
            
    l.head l.tail NULL;
        else
        {
            
    l.tail->next p;
            
    ->prew l.tail;
            
    l.tail p;
        }
    }
    void inputsinhvien(list &l)
    {
        
    sv x;
        
    printf("moi ban nhap danh sach sinh vien den khi nhap ten rong:\n");
        do
        {
            
    fflush(stdin);
            
    printf("\nho va ten:"); gets(x.hoten);
            if(
    x.hoten[0]==0)
                break;
            
    printf("\nmssv: "); scanf("%d",&x.mssv);
            
    printf("\ndiem: "); scanf("%d",&x.diem);
            
    addhead(l,x);
        }while(
    x.hoten[0]!=0);
    }
    void outsinhvien(list l)
    {
        if(
    l.head == NULL)
            
    printf("danh sach rong!");
        else
        {
            
    node *p=l.head;
            while(
    != NULL)
            {
                
    printf("%-30s%-5d%-4.2f\n",p->data.hoten,p->data.mssv,p->data.diem);
                
    p->next;
            }
        }
    }
    void main()
    {
        list 
    l;
        
    creatlist(l);
        
    inputsinhvien(l);
        
    outsinhvien(l);
        
    getch();

    Last edited by 11520537; 15-05-2012, 17:15.
    Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

  • #2
    Originally posted by 11520537 View Post
    em chạy thì báo lỗi phần hàm addhead mông anh chị giải quyết giùm
    PHP Code:
    // danh sach sinh vien.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include "stdio.h"
    #include "conio.h"
    #include "stdlib.h"
    #include "string.h"
    typedef struct sinhvien
    {
        
    char hoten[30];
        
    int mssv;
        
    float diem;
    }
    sv;
    typedef struct tagnode
    {
        
    sv data;
        
    struct tagnode *next;
        
    struct tagnode *prew;
    }
    node;
    typedef struct taglist
    {
        
    node *head;
        
    node *tail;
    }list;
    void creatlist(list &l)
    {
        
    l.head l.tail NULL;
    }
    nodecreatnode(sv x)
    {
        
    node *p;
        
    = new node;
        
    p->data x;
        
    p->next p->prew NULL;
        return 
    p;
    }
    void addhead(list &l,sv x)
    {
        
    node *p=creatnode(x);
        if(
    l.head == NULL)
            
    l.head l.tail NULL;
        else
        {
            
    p->next l.head;
            
    l.head ->prew p;
            
    l.head p;
        }
    }
    void addtail(list &l,node *p)
    {
        if(
    l.head == NULL)
            
    l.head l.tail NULL;
        else
        {
            
    l.tail->next p;
            
    ->prew l.tail;
            
    l.tail p;
        }
    }
    void inputsinhvien(list &l)
    {
        
    sv x;
        
    printf("moi ban nhap danh sach sinh vien den khi nhap ten rong:\n");
        do
        {
            
    fflush(stdin);
            
    printf("ho va ten: "); gets(x.hoten);
            if(
    x.hoten == "")
                break;
            
    printf("\nmssv: "); scanf("%d",&x.mssv);
            
    printf("\ndiem: "); scanf("%d",&x.diem);
            
    addhead(l,x);
        }while(
    x.hoten != "");
    }
    void outsinhvien(list l)
    {
        if(
    l.head == NULL)
            
    printf("danh sach rong!");
        else
        {
            
    node *p=l.head;
            
    printf("ho va ten              mssv               diem:\n");
            while(
    != NULL)
            {
                
    printf("%30s               %5d                %3f",p->data.hoten,p->data.mssv,p->data.diem);
                
    p->next;
            }
        }
    }
    void main()
    {
        list 
    l;
        
    inputsinhvien(l);
        
    outsinhvien(l);
        
    getch();

    Cái hàm addhead sai rồi kìa em!

    cái chỗ:
    if(l.head == NULL)
    l.head = l.tail = NULL;
    sửa thành:
    if(l.head == NULL)
    l.head = l.tail = p;
    Với lại em viết chính tả sai rồi kìa em! là mong chứ ko phải là mông! ) !!!

    Comment


    • #3
      Originally posted by 09520251 View Post
      Cái hàm addhead sai rồi kìa em!

      cái chỗ:

      sửa thành:


      Với lại em viết chính tả sai rồi kìa em! là mong chứ ko phải là mông! ) !!!
      cảm ơn anh, nhưng sửa rồi nó lại báo lỗi ở code : l.head ->prew = p;
      sửa dùm em đi.
      Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

      Comment


      • #4
        Originally posted by 11520537 View Post
        em chạy thì báo lỗi phần hàm addhead mông anh chị giải quyết giùm
        PHP Code:
        // danh sach sinh vien.cpp : Defines the entry point for the console application.
        //

        #include "stdafx.h"
        #include "stdio.h"
        #include "conio.h"
        #include "stdlib.h"
        #include "string.h"
        typedef struct sinhvien
        {
            
        char hoten[30];
            
        int mssv;
            
        float diem;
        }
        sv;
        typedef struct tagnode
        {
            
        sv data;
            
        struct tagnode *next;
            
        struct tagnode *prew;
        }
        node;
        typedef struct taglist
        {
            
        node *head;
            
        node *tail;
        }list;
        void creatlist(list &l)
        {
            
        l.head l.tail NULL;
        }
        nodecreatnode(sv x)
        {
            
        node *p;
            
        = new node;
            
        p->data x;
            
        p->next p->prew NULL;
            return 
        p;
        }
        void addhead(list &l,sv x)
        {
            
        node *p=creatnode(x);
            if(
        l.head == NULL)
                
        l.head l.tail NULL;
            else
            {
                
        p->next l.head;
                
        l.head ->prew p;
                
        l.head p;
            }
        }
        void addtail(list &l,node *p)
        {
            if(
        l.head == NULL)
                
        l.head l.tail NULL;
            else
            {
                
        l.tail->next p;
                
        ->prew l.tail;
                
        l.tail p;
            }
        }
        void inputsinhvien(list &l)
        {
            
        sv x;
            
        printf("moi ban nhap danh sach sinh vien den khi nhap ten rong:\n");
            do
            {
                
        fflush(stdin);
                
        printf("ho va ten: "); gets(x.hoten);
                if(
        x.hoten == "")
                    break;
                
        printf("\nmssv: "); scanf("%d",&x.mssv);
                
        printf("\ndiem: "); scanf("%d",&x.diem);
                
        addhead(l,x);
            }while(
        x.hoten != "");
        }
        void outsinhvien(list l)
        {
            if(
        l.head == NULL)
                
        printf("danh sach rong!");
            else
            {
                
        node *p=l.head;
                
        printf("ho va ten              mssv               diem:\n");
                while(
        != NULL)
                {
                    
        printf("%30s               %5d                %3f",p->data.hoten,p->data.mssv,p->data.diem);
                    
        p->next;
                }
            }
        }
        void main()
        {
            list 
        l;
            
        inputsinhvien(l);
            
        outsinhvien(l);
            
        getch();

        Trong hàm main em chưa có createlist kìa em! Chưa create thì là sao mà có list!!!

        Comment


        • #5
          em có hàm creatlist rồi mà anh!
          Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

          Comment


          • #6
            Bạn thêm cái hàm creatlist mà bạn đã khai báo vào void main là dc mà
            PHP Code:
            void main()
            {
                list 
            l;
                
            creatlist(l);
                
            inputsinhvien(l);
                
            outsinhvien(l);
                
            getch();

            Get link VIP FShare
            http://linhf.com/fshare
            To the world you may be one person, but to one person you may be the world.

            Comment


            • #7
              lại gặp vấn đề nữa rồi!, các anh chạy thử và chỉ em tại sao khi in list ra thì phần điểm toàn là 0 hết? trong khi em nhập điểm khác 0 hết mà!
              Last edited by 11520537; 15-05-2012, 17:17.
              Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

              Comment


              • #8
                không ai cứu hả trời!
                Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

                Comment


                • #9
                  Originally posted by 11520537 View Post
                  lại gặp vấn đề nữa rồi!, các anh chạy thử và chỉ em tại sao khi in list ra thì phần điểm toàn là 0 hết? trong khi em nhập điểm khác 0 hết mà!
                  Em nhập như thế nào? Copy toàn bộ những gì có trong command line paste lên cho mọi người dễ theo dõi.

                  Comment

                  LHQC

                  Collapse
                  Working...
                  X