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

Đề tài: [ Solved ]Giúp đỡ tôi cách loại các phần tử mảng trùng nhau

  1. #1
    Ngày gia nhập
    07 2007
    Bài viết
    7

    Mặc định [ Solved ]Giúp đỡ tôi cách loại các phần tử mảng trùng nhau

    tôi có một mảng P các phẩn tử . Các phần tử trong mảng có kiểu Point(x,y) x,y là các số kiểu float . (Point ở đây tức là tọa độ các điểm trên mặt phẳng.) .Nếu mảng P có chứa các phần tử trùng nhau thì cần loại các phần tử đó đi . VD: P[(1,1),(2,1),(1,1),(1,1),(3,4),(2,1)] thì cần đưa P về
    P[(1,1),(2,1),(3,4)] . Các bạn giúp tôi cái

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

    bạn làm như cách loại bỏ cá phần tử mảng trùng mà KDL là int, hay float thôi

  3. #3
    Ngày gia nhập
    07 2007
    Bài viết
    7

    với mảng kiểu int thì có thể làm theo cách này
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <stdlib.h>
    4. void main()
    5. {  
    6.     int *B,n,*temp,k;
    7.     system("cls");
    8.    
    9.     printf("Nhap chi so n");
    10.  
    11.     scanf("%d",&n);
    12.     B=new int[n];
    13.     for(int i=0;i<n;i++)
    14.     {
    15.         printf("Nhap B[%d]=",i);
    16.         scanf("%d",&B[i]);
    17.     }
    18.    
    19.     temp=new int [n];
    20.    
    21.  
    22.     for(i = 0; i<n ; i++)
    23.     {
    24.         temp[B[i]] = 1;
    25.     }
    26.  
    27.     for( i = 1 ; i<= n ; i++)
    28.     {
    29.         if(temp[i]== 1 )
    30.         {
    31.             printf(" %d ",i);
    32.         }
    33.     }
    34.    
    35.    
    36.     getch();
    37. }
    nhưng với mảng các điểm thì tôi chưa làm được . Bạn nào biết cách làm thì hướng dẫn rõ ràng ra hộ tôi cái nhé .
    Đã được chỉnh sửa lần cuối bởi md_vn : 16-07-2007 lúc 12:17 PM.

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

    Code:
    ...=new int [n];
    thay bằng ...= new Point[n];// Point là kiểu dữ liệu của bạn
    Ngoài ra bạn có thể sử dụng std::list thì đỡ phải dùng mảng rồi xoá, thêm,...

    Anyway, cái gì cấp phát thì cũng nên giải phóng nó đi.

  5. #5
    Ngày gia nhập
    07 2007
    Bài viết
    7

    Có thể post cả code lên hộ tôi được không bạn ơi . Tôi đang cần rất gấp . Mai phải báo cáo rồi mà loay hoai mãi không làm được .

  6. #6
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Mặc định [ Solved ]Giúp đỡ tôi cách loại các phần tử mảng trùng nhau

    Trích dẫn Nguyên bản được gửi bởi md_vn Xem bài viết
    Có thể post cả code lên hộ tôi được không bạn ơi . Tôi đang cần rất gấp . Mai phải báo cáo rồi mà loay hoai mãi không làm được .
    C++ Code:
    1. // remove from list
    2. #include <iostream>
    3. #include <list>
    4. using namespace std;
    5.  
    6. int main ()
    7. {
    8.   int myints[]= {17,89,7,14};
    9.   list<Point> mylist;
    10.   Point myPt;
    11.   myPt.x = 1; myPt.y = 2;
    12.   mylist.push_back(myPt);
    13.   myPt.x = 2; myPt.y = 5;
    14.   mylist.push_back(myPt);
    15.   myPt.x = 3; myPt.y = 6;
    16.   mylist.push_back(myPt);
    17.  
    18.   cout << "mylist contains:";
    19.   for (list<Point>::const_iterator it=mylist.begin(); it!=mylist.end(); ++it)
    20.   {
    21.      Point pt = *it;
    22.      cout << " " << pt.x << pt.y;
    23.   }
    24.   // xoá phần tử thứ 2;
    25.   list<Point>::iterator Iter = mylist.begin();
    26.   Iter++;
    27.   mylist.pop_back(Iter);
    28.  
    29.   cout << "mylist contains:";
    30.   for (list<Point>::const_iterator it=mylist.begin(); it!=mylist.end(); ++it)
    31.   {
    32.      Point pt = *it;
    33.     cout << " " << pt.x << pt.y;
    34.   }
    35.   return 0;
    36. }

    Đại loại thì cách sử dụng list là vậy, mình nghĩ sao viết vậy, chưa chạy nên có thể sai
    Vào đây để xem chi tiết về cách sử dụng list:
    http://www.cplusplus.com/reference/stl/list/

    Còn bạn cũng có thể sử dụng mảng với kiểu dữ liệu là Point gần như y hệt với kiểu dữ liệu là int
    Đã được chỉnh sửa lần cuối bởi vinhie47 : 16-07-2007 lúc 09:21 PM.

  7. #7
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    Để tổng quát hơn cho mọi kiểu, mình nghĩ phải xây dựng một struct Point, sau đó xây dựng một mảng PointArray với điều kiện là xử lí luôn nếu khi put một phần tử mới vào mảng thì phải check nó, nếu trùng với 1 phần tử nào đó sẵn có trong mảng thì không put vào nữa.

  8. #8
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Bỏ qua vì tớ viết không đúng nội dung đề tài nhưng có cái này thắc mắc lâu rồi bi giờ thấy vinhie đưa lên nên định hỏi luôn cho tiện . Có gì chỉ giúp nhé :
    Đoạn code thắc mắc :
    C++ Code:
    1. // constructing stacks
    2. #include <iostream>
    3. #include <vector>
    4. #include <deque>
    5. #include <stack>
    6. using namespace std;
    7.  
    8. int main ()
    9. {
    10.   deque<int> mydeque (3,100);     // deque with 3 elements
    11.   vector<int> myvector (2,200);   // vector with 2 elements
    12.  
    13.   stack<int> first;               // empty stack
    14.   stack<int> second (mydeque);    // stack initialized to copy of deque
    15.  
    16.   stack<int,vector<int> > third;  // empty stack using vector
    17.   stack<int,vector<int> > fourth (myvector);
    18.  
    19.   cout << "size of first: " << (int) first.size() << endl;
    20.   cout << "size of second: " << (int) second.size() << endl;
    21.   cout << "size of third: " << (int) third.size() << endl;
    22.   cout << "size of fourth: " << (int) fourth.size() << endl;
    23.  
    24.   return 0;
    25. }

    Trong này có những cái tương tự như cái mà vinhie đưa lên đấy .
    deque<int>
    deque có phải là 1 thư viện mình viết riêng rồi include vào hay không ? còn <int> là đối của template .

    Nếu như vậy thì có thể nói về cách viết cái include <deque> hay ko ? Có phải tương tự như viết thư viện .h

  9. #9
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    HIx khoan đọc rồi mới thấy , đừng nói đây là 1 cái thư viện riêng chứ .

  10. #10
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Hờ hờ, chả hiểu thế nào một năm sau mình lại đọc lại cái này.
    2Kidkid: đó là stl, là thư viện rất phổ biến. Nhưng đến giờ này thì chắc là bạn cũng biết rồi

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

  1. Bài tập C++ Viết hàm loại bỏ tất cả các phần tử có giá trị trùng nhau
    Gửi bởi billykun trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 09-07-2012, 12:29 PM
  2. Lập trình C | Sắp xếp và loại bỏ các phần tử trùng nhau trên mảng?
    Gửi bởi sonas trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 14
    Bài viết cuối: 22-06-2012, 09:34 AM
  3. Bài tập C sắp xếp mảng tăng dần, loại phần tử trùng nhau
    Gửi bởi matmeocham 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: 20-11-2010, 12:35 PM
  4. Bài tập C++ Sắp xếp mảng sau khi đã loại bỏ những phần tử trùng nhau
    Gửi bởi tuanvu_n trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 19
    Bài viết cuối: 29-06-2010, 08:23 PM
  5. [ Solved ]Loại bỏ những số trùng nhau, làm cách nào dễ hiểu nhất?
    Gửi bởi ilovebeckham trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 22
    Bài viết cuối: 27-03-2008, 12:58 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