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

Đề tài: Sắp xếp ma trận bằng con trỏ ?

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

    Mặc định Sắp xếp ma trận bằng con trỏ ?

    Phần này em làm hoài ko dc
    Cụ thể : Sắp xếp ma trận theo chiều giảm dần từ trái sang, trên xuống ?
    Mà sao em sắp xếp theo dòng nó lại ko giảm. Hjx.
    Code:
                  for(int i=0;i<n-1;i++)
      		for(int j=i+1;j<n;j++)
            	if ( *(p+i*n+i) < *(p+i*n+j) )
            	{
    				int tam = *(p+i*n+i);
    				*(p+i*n+i) = *(p+i*n+j);
    				*(p+i*n+j) = tam;
    			}
    Đây là cái code sắp xêp trên 1 dòng(n là cột) . Mà sao nó lại ko sắp xếp ?
    Ai giúp em với !

  2. #2
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    nếu n là số cột thì
    p+i*n+i là địa chỉ phần tử thứ i trên dòng thứ i. Tức là đường chéo.

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

    Vậy địa chỉ phần tử thứ 2 trên dòng 1 là sao nhi ? 2 cái i giống nhau à

  4. #4
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trích dẫn Nguyên bản được gửi bởi smart_lookAir Xem bài viết
    Vậy địa chỉ phần tử thứ 2 trên dòng 1 là sao nhi ? 2 cái i giống nhau à
    p+1*n+2

    p+1*n là địa chỉ phần tử đầu tiên (thứ 0) trên dòng 1

    Làm việc với con trỏ thì việc đầu tiên là phải học cách đếm.

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

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    p+1*n+2

    p+1*n là địa chỉ phần tử đầu tiên (thứ 0) trên dòng 1

    Làm việc với con trỏ thì việc đầu tiên là phải học cách đếm.
    Ha ha, làm được rồi,Thanks huynh!,
    Nhưng chỉ giảm duoc trên dòng (tức n là cột)
    Còn nếu: m là dòng thì sử dụng con trỏ thế nào zậy ?

    À cách đếm sao nhỉ ? Chỉ giúp lun nhé (tại ở trường chỉ học qua loa thuj, ko có cho làm bài tập ví dụ cụ thể nên ngu lun)

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

    Mặc định Sắp xếp ma trận bằng con trỏ ?

    Ai giúp mình câu này với, cau bài tập cuối cùng đây. Hết ngày hôm nay nộp rồi

  7. #7
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Bạn tham khảo nha!
    C++ Code:
    1. for(int i=0;i<nd*nc-1;i++)
    2.      for(int j=i+1;j<nd*nc;j++)
    3.     {
    4.           if(*(*(a +i/nc )+i%nc) < *(*(a +j/nc )+j%nc)  )
    5.           {
    6.               int temp=*(*(a +i/nc )+i%nc);
    7.               *(*(a +i/nc )+i%nc)=*(*(a +j/nc )+j%nc);
    8.               *(*(a +j/nc )+j%nc)=temp;
    9.           }
    10.     }
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

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

  1. Trao đổi liên kết, trao doi logo, Text Link với các webforumblog (free)
    Gửi bởi nguyenlam14990 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 31
    Bài viết cuối: 13-03-2012, 11:53 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