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

Đề tài: QUản lí học sinh với Linked List

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    1

    Mặc định QUản lí học sinh với Linked List

    Mình đọc sách đến phần này, mình thử làm 1 bài tập quản lí sinh viên dùng linked list nhưng gặp vấn đề

    PHP Code:
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    typedef struct pp
    {
        
    char ht[40];
        
    char diem[10];
        
    struct pp*tiep;    
    person;
    person *pdau=NULL,*p,*last,*tam;
    void khoitao();
    void nhap();
    main()
    {
        
    int i;
        do
        {
            
    printf("Hay lua chon\n");
            
    printf("1.Nhap them nguoi\n");
            
    printf("2.Xoa 1 nguoi khoi danh sach\n");
            
    printf("3.Tim kiem 1 nguoi trong danh sach\n");
            
    printf("4.Liet ke danh sach\n");
            
    printf("5.Thoat ra\n");
            
    printf("Ban chon:\n");
            
    scanf("&d",&i);
            if(
    i==1nhap();
            if(
    i==2xoa();
            if(
    i==3timkiem();
            if(
    i==4lietke();
            if(
    i==4thoat();
            else 
    printf("Moi ban nhap lai\n");    
        }while(
    i!=5);
    }
    //Ở đây mình chỉ đưa hàm nhập dữ liệu lên thôi, các hàm khác cũng gặp tình trạng tương tự
    void khoitao()
    {
        if(
    pdau==NULL)
        {
            
    pdau=malloc(sizeof(person));
            
    printf("\nNhap ho va ten\n");
            
    scanf("%s",pdau->ht);
            
    printf("Nhap diem\n");
            
    scanf("%s",pdau->diem);
            
    pdau->tiep;
            }
        return;
    }
    void nhap()
    {
        
    p=pdau;
        if(
    p==NULLkhoitao();
        else
        {
            
    last=malloc(sizeof(person));
            if(
    last==NULLprintf("\nKhong du bo nho\n");
            while(
    p->tiep!=NULLp=p->tiep;
            
    printf("Nhap ho va ten\n");
            
    scanf("%s",&p->ht);
            
    printf("Nhap diem\n");
            
    scanf("%s",&p->diem);
            
    last->tiep=NULL;
            
    p->tiep=last;
        }
        return;

    Vấn đề ở đây là khi mình ấn số 1 để nhập danh sách thì thấy các dòng chữ chạy liên tục như trong phim ý, mà mình thấy hàm của mình có vòng lặp nào đâu :((
    Tương tự với các hàm khác, mình ấn số nào thì nó cũng chạy liên tục như thế
    (ở đây mình chỉ post hàm nhập thôi, các hàm khác chắc cũng bị lỗi giống hàm này). Nhờ mọi người giúp
    Đã được chỉnh sửa lần cuối bởi goroshi : 16-09-2008 lúc 09:20 AM.

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    336

    Code:
            printf("5.Thoat ra\n");
            printf("Ban chon:\n");
            scanf("%d",&i);
    của bạn là scanf("&d",&i);
    code ra gió bão

  3. #3
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    - Mấy hàm kia đâu ?
    - Tránh dùng global variable !

  4. #4
    Ngày gia nhập
    08 2008
    Nơi ở
    homeless
    Bài viết
    15

    Code:
    scanf("%s",&p->ht);
    Code:
    scanf("%s",&p->diem);
    Cho em hỏi cái &p-> là sao ???
    &(*p) sao trỏ được
    Đã được chỉnh sửa lần cuối bởi trunkthai : 16-09-2008 lúc 11:16 AM.

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Đọc cú pháp C/C++ từ phải qua trái :
    p->ht = 1 giá trị nào đó.
    lấy địa chỉ của ( p -> ht ) tức là &( p->ht )
    Nếu tui viết tui cũng sẽ viết như cú pháp trên, khỏi phải cần nhớ thứ tự ưu tiên và cũng dễ dàng hơn cho người đọc. Nhưng ở trên mãng pure char có thể nhận hoặc là địa chỉ hoặc là cái tên thôi cũng được, vì tên mãng cũng là con trỏ trỏ vào địa chỉ đó so either way.
    C Code:
    1. #include <cstdio>
    2.  
    3. struct Sthing {
    4.   char data[ 80 ];
    5. };
    6.  
    7.  
    8. int main() {
    9.   Sthing  my_struct1;
    10.   Sthing  my_struct2;
    11.  
    12.   Sthing* p1 = &my_struct1;
    13.   Sthing* p2 = &my_struct2;
    14.  
    15.   scanf( "%s", &( p1->data ) );
    16.   printf( "%s \n", p1->data );
    17.  
    18.   scanf( "%s", p2->data );
    19.   printf( "%s \n", p2->data );
    20.  
    21.   return 0;
    22. }
    Thử là biết liền !

  6. #6
    Ngày gia nhập
    08 2008
    Bài viết
    1

    Mặc định QUản lí học sinh với Linked List

    Trích dẫn Nguyên bản được gửi bởi 6220119 Xem bài viết
    Code:
            printf("5.Thoat ra\n");
            printf("Ban chon:\n");
            scanf("%d",&i);
    của bạn là scanf("&d",&i);
    Đúng rồi, vấn đề là ở chỗ này. do mình không để ý. Thanks, có gì mình lại hỏi tiếp
    @rox:cho hỏi global variable là gì thế? Tại sao không nên dùng nó?

  7. #7
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Global variable là biến toàn cục, không nên xài biến toàn cục là vì :
    - Giả nếu cả chục hàm xài biến đó, mà vô tình 1 hàm sử dụng phép gán mà ta không mong đợi thì coi như xong !!! Debug là bằng niềm tin.
    - Thậm chí ở các trường College, hay Uni ở bên tui nếu xài global mà không dùng const sẽ bị 0 ngay khỏi chấm bài nữa, vì global hầu như bị banned hoàn toàn rồi.
    - Còn thắc mắc gì thì post lên, tui dạo này cũng biết C 1 chút rùi !

  8. #8
    Ngày gia nhập
    08 2008
    Nơi ở
    homeless
    Bài viết
    15

    Cám ơn anh R_R(<-cái này chắc đọc là anh 2 rờ )

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

  1. Con trỏ trên C Hàm Sắp xếp nổi bọt trong Linked List
    Gửi bởi itviapro trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 05-01-2013, 03:33 PM
  2. Lập trình C++ Ghi/Đọc file nhị phân với Linked List
    Gửi bởi nhuel trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 10-11-2012, 06:54 PM
  3. Chia 1 single-linked list thành 3 single-linked litst. 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: 3
    Bài viết cuối: 14-11-2010, 12:43 PM
  4. nhân 2 số lớn bằng linked list
    Gửi bởi windviet trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 03-06-2010, 11:57 AM
  5. [ Solved ]Cho mình hỏi về toán tử gán với linked list
    Gửi bởi khanhkhoa trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 15-09-2008, 09:46 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