Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Mọi người tìm lỗi giúp tôi trong hàm nhập danh sách liên kết với!

  1. #1
    Ngày gia nhập
    09 2012
    Bài viết
    1

    Mặc định Mọi người tìm lỗi giúp tôi trong hàm nhập danh sách liên kết với!

    Code:
    //xay dung cau truc lien ket hang hang doi sinh vien.
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<string.h>
    typedef struct sinhvien
        {
         char hoten[30];
         int tuoi;
         sinhvien *tiep;
        }sv;
        
    main()
    {
          sv *p,*pdau;
          int i=1;
          char ht[30];
          p=NULL;
          pdau=NULL;
          while (1)
          {
            printf("\nNhap danh sach ten, tuoi cua cac sinh vien vao: ");
            printf("\nTen sinh vien %d: ",i++); 
            fflush(stdin);   
            gets(ht); 
            if(ht[0]=='\0') return pdau;
            
                          
            if(pdau==NULL)
                 {p=(sv *)malloc(sizeof(sv));
                 pdau=p;}
            else
                {p->tiep=(sv *)malloc(sizeof(sv));
                p=p->tiep;}
            strcpy(p->hoten,ht);
            printf("\nTuoi: ");
            scanf("%d",&p->tuoi);
            p->tiep==NULL;
            
          };
          
    getch();      
    }
    Nó báo là lỗi chuyển đổi kiểu sv* tới kiểu int . Nhưng mình không tìm ra lỗi. Cảm ơn các bạn
    1

  2. #2
    Ngày gia nhập
    11 2012
    Bài viết
    136

    if(ht[0]=='\0') return pdau; Bạn xem lại dòng này này ý bạn là muốn không nhập được nữa thì thoát vòng lặp đúng không, thì mình phải trả về return 0 kết thúc chương trình luôn hai là break để thoát vòng lặp
    chứ hàm main không thể trả về là một con trỏ được, mặc định thường là int main nên cần trả về 1 giá trị nên nó mới bắt ép kiểu. Mình chưa chạy gì đâu nhưng dự là vậy bạn thử sửa chỗ return pdau mình nói xem sao.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Làm gì có chuyện báo lỗi mà ko tìm ra lỗi.
    Nó báo lỗi nào thì nó báo luôn cả vị trí lỗi chứ. Click vào lỗi là nó trỏ đến chỗ lỗi cho mà xem
    Um Mani Padme Hum...!!

  4. #4
    Ngày gia nhập
    09 2012
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    if(ht[0]=='\0') return pdau; Bạn xem lại dòng này này ý bạn là muốn không nhập được nữa thì thoát vòng lặp đúng không, thì mình phải trả về return 0 kết thúc chương trình luôn hai là break để thoát vòng lặp
    chứ hàm main không thể trả về là một con trỏ được, mặc định thường là int main nên cần trả về 1 giá trị nên nó mới bắt ép kiểu. Mình chưa chạy gì đâu nhưng dự là vậy bạn thử sửa chỗ return pdau mình nói xem sao.
    hi, cảm ơn kimcy1992 nhé. mình hiểu rồi.

  5. #5
    Ngày gia nhập
    09 2012
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    if(ht[0]=='\0') return pdau; Bạn xem lại dòng này này ý bạn là muốn không nhập được nữa thì thoát vòng lặp đúng không, thì mình phải trả về return 0 kết thúc chương trình luôn hai là break để thoát vòng lặp
    chứ hàm main không thể trả về là một con trỏ được, mặc định thường là int main nên cần trả về 1 giá trị nên nó mới bắt ép kiểu. Mình chưa chạy gì đâu nhưng dự là vậy bạn thử sửa chỗ return pdau mình nói xem sao.
    Cho mình hỏi về ý nghĩa của return 0;
    và chương trình hoàn thiện của mình này, chạy được, kết quả đúng, nhưng chạy xong thì phần biên dịch báo là: ABC.exe has stoped working. Là sao hả bạn?

    Code:
    //xay dung cau truc lien ket hang hang doi sinh vien.
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<string.h>
    typedef struct sinhvien
        {
         char hoten[30];
         int tuoi;
         sinhvien *tiep;
        }sv;
        
    main()
    {
          sv *p,*pdau;
          int i=1;
          char ht[30];
          p=NULL;
          pdau=NULL;
          while (1)
          {
            printf("\nNhap danh sach ten, tuoi cua cac sinh vien vao: ");
            printf("\nTen sinh vien %d: ",i++); 
            fflush(stdin);   
            gets(ht); 
            if(ht[0]=='\0') break;
            
                          
            if(pdau==NULL)
                 {p=(sv *)malloc(sizeof(sv));
                 pdau=p;}
            else
                {p->tiep=(sv *)malloc(sizeof(sv));
                p=p->tiep;}
            strcpy(p->hoten,ht);
            printf("\nTuoi: ");
            scanf("%d",&p->tuoi);
            p->tiep==NULL;
            
          };
          printf("\nHien thi cau truc minh vua nhap: ");
          p=pdau;
          while(p!=NULL)
          {
           
           printf("\nten: %s  | Tuoi: %d",p->hoten,p->tuoi);
           p=p->tiep;                
          }
          
    getch();      
    }

Các đề tài tương tự

  1. Bài tập C nhập xuất danh sách liên kết đơn các số nguyên. Sửa giúp mình?
    Gửi bởi capulato trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 31-12-2013, 10:08 PM
  2. Bài tập C++ [giúp]nhập và xuất dữ liệu file txt với danh sách liên kết đơn
    Gửi bởi terink79 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 02-06-2013, 03:53 AM
  3. Bài tập C Giúp mình sửa lỗi việc chèn số trong danh sách liên kết đơn
    Gửi bởi chetlahet_92 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 29-11-2012, 10:56 AM
  4. Giúp đỡ danh sách liên kết đơn trong c
    Gửi bởi lytnhan trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 25-04-2012, 11:46 AM
  5. Tìm kiếm vị trí trong danh sách liên kết. Giúp em với!
    Gửi bởi theanh3112 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 23-12-2008, 12:22 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn