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ố 18 kết quả

Đề tài: kĩ thuật nhập mảng 2 chiều bằng con trỏ đa cấp??

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

    Wink kĩ thuật nhập mảng 2 chiều bằng con trỏ đa cấp??

    cho mình hỏi cách nhập và in mảng 2 chiều bằng con trỏ đa cấp làm ntn vậy?
    (nếu được thì chỉ dùng duy nhất con trỏ thôi, ko khai báo thêm mảng 2 chiều)

  2. #2
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    469

    Trích dẫn Nguyên bản được gửi bởi chipnin Xem bài viết
    cho mình hỏi cách nhập và in mảng 2 chiều bằng con trỏ đa cấp làm ntn vậy?
    (nếu được thì chỉ dùng duy nhất con trỏ thôi, ko khai báo thêm mảng 2 chiều)
    Xem http://forums.congdongcviet.com/show...2720#post42720

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

    trong đó ko có cái mình cần
    nếu bạn biết thì hãy chỉ cho mình cách làm luôn.
    thanks

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

    Giờ tui mới nghe nói tới khái niệm con trỏ đa cấp đấy. Nó là gì vậy ?

  5. #5
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    469

    Trích dẫn Nguyên bản được gửi bởi TQN Xem bài viết
    Giờ tui mới nghe nói tới khái niệm con trỏ đa cấp đấy. Nó là gì vậy ?
    Là con trỏ trỏ đến con trỏ í mà. Ví dụ, float * * * p;

  6. #6
    Ngày gia nhập
    05 2008
    Nơi ở
    HàNội™
    Bài viết
    4

    Mặc định kĩ thuật nhập mảng 2 chiều bằng con trỏ đa cấp??

    Trích dẫn Nguyên bản được gửi bởi Ada Xem bài viết
    Là con trỏ trỏ đến con trỏ í mà. Ví dụ, float * * * p;
    Phần này có quan trọng ko,mình mãi ko hiểu được.Con trỏ đa cấp có ứng dụng như thế nào?

  7. #7
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    469

    Trích dẫn Nguyên bản được gửi bởi HaiLy Xem bài viết
    Phần này có quan trọng ko,mình mãi ko hiểu được.Con trỏ đa cấp có ứng dụng như thế nào?
    Ví dụ:

    1. Trong C (không phải C++) cần phải viết một hàm nhap() để nhập một dãy số thực float sao cho có thể dùng được hàm này với cách dùng như sau:
    Code:
    float *u;
    nhap(u);
    2. Trong C (không phải C++) cần phải viết một thư viện làm việc với ma trận số thực double có kích thước bất kì sao cho có thể tạo ra và sử dụng ma trận theo cách sau:
    Code:
    int m,n,i,j;
    m = .... // tính giá trị của m 
    n = .... // tính giá trị của n
    MATRAN a = taomatran(m,n); // tạo ra ma trận cỡ m*n
    MATRAN b = taomatran(n,m); // tạo ra ma trận cỡ n*m
    
    double x = 0.0;
    for(i = 0; i<m; i++)
      for(j = 0; j<n; j++)
      {
        a[i][j] = .... // gán vào phần tử của ma trận
        x += b[j][i] + a[i][j]; // sử dụng phần tử của ma trận
      }
    Đã được chỉnh sửa lần cuối bởi Ada : 02-06-2008 lúc 09:47 PM.

  8. #8
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Khai báo "hai lần con trỏ" này thường thấy trong các trường hợp:

    a) Kết hợp với số học con trỏ (phép cộng con trỏ với số nguyên). Thông qua con trỏ a ta có thể truy nhập không những *a, tức *(a+0), tức a[0], mà còn có thể *(a+1), *(a+2),... tức a[1], a[2],... nữa.

    Hơn nữa, vì a[i] đều là những con trỏ nên thông qua chúng ta còn có thể truy nhập
    *a[i], tức *(a[i]+0), tức a[i][0]
    *(a[i]+j), tức a[i][j]

    Bất cứ lúc nào khai báo int **a bạn đều có thể viết a[i][j] với i,j bất kỳ để truy nhập đến phần tử a[i][j], nhưng nếu các mảng a[] và a[][] này chưa được tạo (cấp phát bộ nhớ) hay nếu i, j vượt khoảng chỉ số cho phép thì hiển nhiên là truy nhập đến phần tử không tồn tại, nghĩa là lỗi.



    b) Truyền biến số cho hàm. Ví dụ, muốn nối 2 xâu u,v và ghi kết quả vào xâu w với khai báo:

    char *u = "hanoi";
    char *v = "saigon";
    char *w; /* w chưa xác định!!! */

    thì ta có thể viết 1 hàm noi() và dùng nó để nối, theo 2 cách:

    w = noi(u,v);

    hoặc

    noi(u,v,&w);

    Theo cách thứ nhất thì noi() được khai báo như sau:

    char *noi(char *a, char *b)
    {
    char *c = (char*) malloc((strlen(a)+strlen(b)+1)*sizeof(char));
    chép xâu a vào c, chép xâu b vào c nối sau a
    return c;
    }

    Còn theo cách thứ hai thì noi() phải được khai báo với con trỏ 2 lần, như sau:

    void noi(char *a, char *b, char **C)
    {
    *C = (char*) malloc((strlen(a)+strlen(b)+1)*sizeof(char));
    chép xâu a vào *C, chép xâu b vào *C nối sau a
    }

    Chú ý. Còn cách thứ 3 là:

    noi(u,v,w);

    void noi(char *a, char *b, char *c)
    {
    chép xâu a vào c, chép xâu b vào c nối sau a
    }

    Nhưng nếu theo cách này thì trước khi gọi noi(), w phải xác định, tức là đã cấp bộ nhớ cho xâu được w trỏ tới, chẳng hạn, bằng lệnh

    w = (char*) malloc((strlen(u)+strlen(v)+1)*sizeof(char));

    hoặc bằng khai báo

    char w[12];

    bởi vì noi(u,v,w) chỉ ghi vào xâu được c trỏ tới, tức là xâu được w trỏ tới, chứ không ghi vào chính bản thân w.
    Đã được chỉnh sửa lần cuối bởi langman : 02-06-2008 lúc 09:40 PM.
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

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

    hic. hãy đi vào vấn đề chính hộ cái các mem ơi.
    mình hỏi là làm sao nhập ma trận và in ma trận bằng con trỏ, ko được dùng biến mảng 2 chiều nào cả.

  10. #10
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    469

    Trích dẫn Nguyên bản được gửi bởi chipnin Xem bài viết
    trong đó ko có cái mình cần
    mình quên nói. ý mình hỏi là cách dùng con trỏ đa cấp trong khi nhập giá trị thực(chứ ko phải nguyên) cho ma trận.
    Nhập 1 số thực cũng tương tự như nhập 1 số nguyên thôi.

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

  1. Tìm thuật toán Bài tập Chia tiền thành tiền lẻ.
    Gửi bởi billykun trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 2
    Bài viết cuối: 02-05-2013, 12:41 PM
  2. Bài tập C thuật toán chia hết cho 3
    Gửi bởi phongk9a1 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 29-01-2013, 09:28 PM
  3. Trả lời: 4
    Bài viết cuối: 10-09-2012, 06:34 PM
  4. Thuật toán tìm giá trị nhỏ nhất chia hết cho tất cả các phần tử trong mảng
    Gửi bởi caphetim 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: 21-09-2011, 04:13 PM
  5. thuật toán chia để trị : tìm min , max trong dãy
    Gửi bởi butbi_pro 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: 22-10-2010, 11:32 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