Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6

Chủ đề: Bài tập mảng

  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã nguồn PHP:
    #include<iostream.h> #include<conio.h> //sap xep tang dan void SapXep(int *a,int n){ int i,j,min,tam; for(i=0;i<n-1;i++){ min = i; for(j=i+1;j<n;j++){ if(a[j]<a[min]) min = j; } tam = a[i]; a[i] = a[min]; a[min] = tam; } } //xoa phan tu trung void XoaTrung(int *a,int &n){ int mang[n],i,j,m; j = 0; for(i=0;i<n;i++){ m = 0; while(m<j){ if(mang[m]==a[i]) break; m++; } if(m==j) mang[j++] = a[i]; } i = 0; while(i<j){ a[i] = mang[i]; i++; } n = i; } int main(){ cout<<"
    - Nhap so phan tu cua mang: "
    ; int i,j,m,n; cin>>n; int mang[n]; cout<<"
    - Nhap cac phan tu cho mang :
    "
    ; for(i=0;i<n;i++){ cout<<" + mang["<<i<<"] = "; cin>>mang[i]; } cout<<"
    - Mang vua nhap la:
    \t"
    ; for(i=0;i<n;i++) cout<<mang[i]<<" "; cout<<"
    - Mang sau khi sap xep tang dan:
    \t"
    ; SapXep(mang,n); for(i=0;i<n;i++) cout<<mang[i]<<" "; XoaTrung(mang,n); cout<<"
    - Xoa cac phan tu trung:
    \t"
    ; for(i=0;i<n;i++) cout<<mang[i]<<" "; getche(); return 0; }  

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Bài tập mảng

    Viết chương trình sắp xếp mảng theo thứ tự tăng dần sau khi đã loại bỏ các phần tử trùng nhau!.

    ( Mình mới học C mong mọi người giúp đỡ) tks!

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi CW.Coder
    viết hàm xoá phần tử i trong mảng. vd del(int a[],i,n)
    cho vòng 2 vòng for lồng nhau.
    for(i=0;i<n-1;i++){
    for(j=i+1;i<n;j++){
    if(a[i]==a[j]){
    del(a,j,n);
    j--;
    n--;
    }
    }
    }
    sau đó sử dụng các thuật toán sắp xếp như chèn,nổi bọt,quick sort..v.v.. lên google search đi bạn.
    Cách mình làm thì khá cùi nhưng mình thấy cũng dễ hiểu.[IMG]images/smilies/online.gif[/IMG]
    Cho mình xin cái code đc ko, mình mới học không biết nhiều lắm!!

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình cũng gặp 1 bài tương tự thế này. Cho mình hỏi xóa phần tử trùng nhau là xóa ra khỏi mảng hay giữ lại 1 phần tử?

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    2 đồng chí trên học FPT à

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi thaitronganh
    Viết chương trình sắp xếp mảng theo thứ tự tăng dần sau khi đã loại bỏ các phần tử trùng nhau!.

    ( Mình mới học C mong mọi người giúp đỡ) tks!
    Theo mình hiểu thì ý của bài này nói cách khác là sắp mảng chứa các giá trị phân biệt tăng dần .

    Mình cho bạn cái ý tưởng để đi bài này : Cách đơn giản nhất là ngay từ đầu bạn sắp xếp các phần tử trong mảng tăng dần (bằng các thuật toán khác nhau nhưng hình như cơ bản nhất các bạn vẫn hay xài là Interchange Sort) .Bạn in ra trước phần tử a[0] . Sau đó khởi tạo vòng lặp chạy từ chỉ số 1 : for(int i=1;i<n;i++) rồi kèm theo điều kiện a[i]!=a[i-1] nếu thỏa thì in ra những phần tử đó . Thế là xong ^^ !

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •