Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: rắc rối chỗ struct

  1. #1
    Ngày gia nhập
    11 2008
    Nơi ở
    Pháo đài số
    Bài viết
    41

    Mặc định rắc rối chỗ struct

    PHP Code:
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    struct DS
       
    char *s;
         
    float cc;
         
    int cntc;
       };
    int n;
    DS *a;
    //--------------------
    void nhap(DS *a);
    void xuat(DS *a);
    //--------------------
    void main()
    clrscr();
      
    printf("nhap n="); scanf("%d",&n);
      
    nhap(a);
      
    xuat(a);
      
    getch();
    }
    //--------------------
    void nhap(DS *a)
    int i;
      for(
    i=0;i<n;i++)
         {  
    printf("i=%d :",i);
        
    gets(a[i].s);
          }
    }
    //---------------------
    void xuat(DS *a)
    {  
    int i;
      for(
    i=0;i<n;i++)
         {  
    printf("\ni=%d:",i);
        
    puts(a[i].s);
         }



    chịu....mấy anh chỉ dùm lỗi chỗ mô mà nhập n=3 mà ra lại như vậy

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Phía trên lệnh gets bạn thêm vào lệnh fflush(stdin)
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    11 2008
    Nơi ở
    Pháo đài số
    Bài viết
    41

    ác fflush(stdin) giải thích dùm cái lun đi ông anh...em còn 1 cái Danh Sách SV chưa làm xong....phần khác là OK rùi chĩ còn cái struct thui...

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    hàm scanf sau khi chạy xong sẽ để lại ký tự "\n", nguyên nhân là do người dùng nhập xong thì chắc chắn phải bấm enter. Ký tự '\n' sẽ là trôi hàm gets. Hàm fflush(stdin) sẽ xóa sạch vùng nhớ đệm bàn phím, kể cả ký tự '\n'
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    11 2008
    Nơi ở
    Pháo đài số
    Bài viết
    41

    đã đc rùi....hĩu nhưng lại có cái này mới zui....kô bít có nên đổi cái C đang dùng kô nữa

    sữa lại rùi
    PHP Code:
    void main()
    clrscr();
      
    printf("nhap n="); scanf("%d",&n);
      
    fflush(stdin)
      
    nhap(a);
      
    xuat(a);
      
    getch();
    }
    //--------------------
    void nhap(DS *a)
    int i;
      for(
    i=0;i<n;i++)
         {  
    printf("i=%d :",i);
             
    fflush(stdin)
             
    gets(a[i].s);
          }


    có cần thêm lun zo trước chỗ hàm in ra kô...dù sao cũng cảm ơn ông anh

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định rắc rối chỗ struct

    Chết thật, nãy giờ mình coi ko kỹ. Bạn chưa hề cấp phát cho con trỏ nào cả.
    bạn khai báo :
    C Code:
    1. DS *a;
    mà chưa hề cấp phát cho nó. Kết quả ra sai bét là đúng rồi, bởi vì con trỏ chưa cấp phát sẽ trỏ bậy bạ vào vùng nhớ rác ( chưa crash chương trình là may ). Nếu bạn chưa rành con trỏ thì cứ xài mảng tĩnh cho xong. Ví dụ như khai báo là :
    C Code:
    1. DS a[100];

    Còn nữa :
    C Code:
    1. struct DS
    2. {   char s[100]; // dùng mảng tĩnh
    3.      float cc;
    4.      int cntc;
    5. };
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    11 2008
    Nơi ở
    Pháo đài số
    Bài viết
    41

    á...ông anh nói mới nhớ....chĩ là muốn viết 1 bài post nhanh lên hỏi nên vội 1 tí....đúng ngu thật....thế mà nghĩ bậy thế mới đau chứ....DỤC TỐC BẤT ĐẠT

  8. #8
    Ngày gia nhập
    11 2008
    Nơi ở
    Pháo đài số
    Bài viết
    41

    cho em hỏi chỗ dưới đó...bị lỗi j mà nhập như thế lại kô ra...nó out lun....mà dùng biến phụ rùi gán vô thì ok...


    mấy anh giúp đở dum em

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

    bug nổi tiếng của Borland C Dos ... cậu phải gán vào biến phụ hoặc tìm cách bật cờ float của compiler lên. Nhưng tốt nhất là gán vào biến phụ hoặc chuyển sang compiler mới xài
    code ra gió bão

  10. #10
    Ngày gia nhập
    11 2008
    Nơi ở
    Pháo đài số
    Bài viết
    41

    Trích dẫn Nguyên bản được gửi bởi 6220119 Xem bài viết
    bug nổi tiếng của Borland C Dos ... cậu phải gán vào biến phụ hoặc tìm cách bật cờ float của compiler lên. Nhưng tốt nhất là gán vào biến phụ hoặc chuyển sang compiler mới xài
    tìm cách bật cờ float của compiler lên ..............làm sao bật lên đc...tự nhiên làm mấy bài struct ni mới bị..chứ mấy hồi đâu có chi

    hỏi lun .....bug la j ????

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

  1. Gửi struct thông qua socket có khác nhau giữa gửi từng field và gửi cả struct?
    Gửi bởi bptvip_pro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 12-05-2013, 02:35 AM
  2. Bài tập C++ làm sao truy xuất biến của struct lồng trong struct
    Gửi bởi quangnam.tamky 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: 10-04-2013, 05:22 PM
  3. Lập trình C++ Giúp đỡ về điểm khác nhau giữa struct và typedef struct
    Gửi bởi huydang2410 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 27-02-2013, 10:30 AM
  4. Khác nhau giữa struct trong c và struct trong c++
    Gửi bởi nhutlv01 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: 17-02-2012, 09:12 AM
  5. kiểu struct trên C++. CHo em hỏi rõ về kiểu struct???
    Gửi bởi nhonx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 13-01-2010, 08:39 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