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

Đề tài: thắc mắc về cấu trúc

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

    Mặc định thắc mắc về cấu trúc

    đề bài chỉ là yêu cầu nhập nhân viên và in ra nhân viên dã đc sắp xếp thôi nhưng ko hiểu sai chỗ nào, mong mọi người chỉ giáo với
    Code:
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    
    typedef struct
    {
    char ten[20];
    int manv,songuoi_pt;
    } nv;
    void input(nv *ds, int);
    //void output(nv *ds, int );
    //void sortA_Z(nv *ds, int );
    //void sort_snpt(nv *ds, int );
    
    void input(nv *ds, int n)
    {
    int i;
    ds=calloc(n,sizeof(nv));
    for(i=0;i<n;i++)
    {
    printf("\nNhap ten nhan vien thu %d: ", i+1);
    fflush(stdin);
    gets((*(ds+i)).ten);
    printf("Nhap ma nhan vien: ");
    scanf("%d", &((*(ds+i)).manv));
    printf("Nhap so nguoi phu thuoc: ");
    scanf("%d", &((*(ds+i))).songuoi_pt);
    }
    }
    
    void output(nv *ds,int n)
    {
    int i;
    printf("\n\n%-10s%-20s%s\n","MaNV","HO TEN","PHU THUOC");
    for (i=0;i<n;i++)
    {
    printf("%-10d%-20s%d\n",(*ds).manv,(*ds).ten,(*ds).songuoi_pt);
    ds++;
    
    }
    }
    
    int main()
    {
    nv *ds;
    int n;
    printf(" Nhap so nhan vien: ");
    scanf("%d", &n);
    input(ds,n);
    output(ds,n);
    getch();
    return 0;
    }

  2. #2
    Ngày gia nhập
    04 2011
    Nơi ở
    Hà Nội
    Bài viết
    253

    Vấn đề của bạn đã đc nói nhiều rồi, mời bạn xem thêm bài con trỏ của bác langman.
    Còn sửa thì rất đơn giản
    C Code:
    1. void input(nv **ds, int n)//tăng cấp của con trỏ lên để có thể thay đổi giá trị của con trỏ truyền vào
    2. {
    3. int i;
    4. *ds=calloc(n,sizeof(nv));//!!!!!!!
    5. for(i=0;i<n;i++)
    6. {
    7. printf("\nNhap ten nhan vien thu %d: ", i+1);
    8. fflush(stdin);
    9. gets((*(*ds+i)).ten);//!!!!!
    10. printf("Nhap ma nhan vien: ");
    11. scanf("%d", &((*(*ds+i)).manv));//!!!!
    12. printf("Nhap so nguoi phu thuoc: ");
    13. scanf("%d", &((*(*ds+i))).songuoi_pt);//!!!!!
    14. }
    15. }
    16.  
    17. // truyền địa chỉ của con trỏ thay vì giá trị của nó
    18. nv *ds;
    19. input(&ds);
    20. //...........
    21. // nhớ free sau khi alloc
    22. free(ds);

  3. #3
    Ngày gia nhập
    04 2012
    Bài viết
    16

    cho mình đóng góp thêm tí nha.
    Trích dẫn Nguyên bản được gửi bởi greigaz Xem bài viết
    Vấn đề của bạn đã đc nói nhiều rồi, mời bạn xem thêm bài con trỏ của bác langman.
    Còn sửa thì rất đơn giản
    C Code:
    1. void input(nv **ds, int n)//tăng cấp của con trỏ lên để có thể thay đổi giá trị của con trỏ truyền vào
    2. {
    3. int i;
    4. *ds=calloc(n,sizeof(nv));//!!!!!!!
    5. //chỗ này theo mình bạn nên thêm tí như sau
    6. //*ds=(nv*)calloc(n,sizeof(nv));
    7. for(i=0;i<n;i++)
    8. {
    9. printf("\nNhap ten nhan vien thu %d: ", i+1);
    10. fflush(stdin);
    11. gets((*(*ds+i)).ten);//!!!!!
    12. printf("Nhap ma nhan vien: ");
    13. scanf("%d", &((*(*ds+i)).manv));//!!!!
    14. printf("Nhap so nguoi phu thuoc: ");
    15. scanf("%d", &((*(*ds+i))).songuoi_pt);//!!!!!
    16. }
    17. }
    18.  
    19. // truyền địa chỉ của con trỏ thay vì giá trị của nó
    20. nv *ds;
    21. input(&ds);
    22. //...........
    23. // nhớ free sau khi alloc
    24. free(ds);
    nếu muốn có ngày mai thì hãy cố gắng từ bjo thay vì ngồi đó than phiền

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

  1. Thiết kế nội thất - Tư vấn kiến trúc thi công - Nội thất www.noithatsmart.com
    Gửi bởi zhouso trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 26-07-2013, 04:03 PM
  2. định dạng ELF có cấu trúc và tổ chức như thế nào?
    Gửi bởi hardwire trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 5
    Bài viết cuối: 12-02-2012, 11:31 PM
  3. Bán nhà 78m2 xã Đồng Trúc, huyện Thạch Thất, Hà Nội giá rẻ nhất TT
    Gửi bởi ephat_tt86 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 08-02-2012, 12:08 AM
  4. Bán nhà 78m2 xã Đồng Trúc, huyện Thạch Thất, Hà Nội giá rẻ nhất TT
    Gửi bởi ephat_tt86 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 07-02-2012, 11:41 PM
  5. cấu trúc bảng băm là cấu trúc như thế nào?
    Gửi bởi minh_quang1202 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: 06-01-2011, 07:03 PM

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