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

Đề tài: Cách xóa phần tử mảng và thêm phần tử vào mảng?

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

    Mặc định Cách xóa phần tử mảng và thêm phần tử vào mảng?

    các anh pro ơi em mới học C.cái bài này em cũng đã hiểu thuật toán rồi nhưng ko biết viết thế nào.Các anh chỉ cho em với.Tốt nhất là các anh chỉ cho em cách dùng mảng thôi,đừng dùng con trỏ hay hàm gì cả

  2. #2
    Ngày gia nhập
    05 2008
    Bài viết
    2

    đây là xóa phần tử trong mãng
    C++ Code:
    1. void xoaphantu(int a[],int &n,int k)
    2. {
    3. for(int i=k;i<n;i++)
    4. a[i]=a[i+1];
    5. n--;
    6. }

    Lưu ý bỏ code vào thẻ code, type Tiếng Việt có dấu.
    Đã được chỉnh sửa lần cuối bởi rox_rook : 12-05-2008 lúc 04:08 PM.

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

    chèn x vào vị trí k
    C++ Code:
    1. #include "stdafx.h"
    2. #include "math.h"
    3. #define Max 50
    4.  
    5. //---------Prototype----------
    6. void  nhapmang  (int a[],int &n);
    7. void  xuatmang  (int a[],int n);
    8. void  chenXvaovitriK(int a[],int &n);
    9.  
    10. //----------------------------
    11. int main(int argc, char* argv[])
    12. {
    13.     int a[Max];
    14.     int n;
    15.     nhapmang(a,n);
    16.     printf("\nMang vua nhap la: \n");
    17.     xuatmang(a,n);
    18.     chenXvaovitriK(a,n);
    19.     printf("\n");
    20.     return 0;
    21. }
    22.  
    23. //----------Nhapmang--------------------
    24. void nhapmang(int a[],int &n)
    25. {
    26.     printf("Nhap so phan tu: ");
    27.     scanf("%d",&n);
    28.     for (int i=0;i<n;i++)
    29.     {
    30.         printf("Nhap phan tu thu %d: ",i);
    31.         scanf("%d",&a[i]);
    32.     }
    33. }
    34.  
    35. //----------Xuatmang--------------------
    36. void xuatmang(int a[],int n)
    37. {
    38.     for (int i=0;i<n;i++)
    39.         printf("\t%d",a[i]);
    40. }
    41.  
    42. //----------Bai32: chen gia tri X vao vi tri K.
    43.  
    44. void chenXvaovitriK(int a[],int &n)
    45. {   int x,k;
    46.     printf("\nNhap vao phan tu can chen: ");
    47.     scanf("%d",&x);
    48.     printf("\nNhap vao vi tri can chen: ");
    49.     scanf("%d",&k);
    50.     if (k>=0 && k<n)
    51.     {
    52.         for (int i=n;i>k;i--)
    53.             a[i]=a[i-1];
    54.         a[k]=x;
    55.         n++;
    56.     }
    57.     xuatmang(a,n);
    58. }

    Lưu ý bỏ code vào thẻ code
    Đã được chỉnh sửa lần cuối bởi rox_rook : 12-05-2008 lúc 04:09 PM.

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

    Mặc định Cach nay cung duoc !:))

    for(i=0;i<n;i++)//n la so phan tu mang
    if(a[i] thỏa mãn) memcpy(a+i,a+i+1,(n-i+1)sizeof(type))//type la kieu cua mang
    n--;//somphan tu cua mang giam xuong

  5. #5
    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 oOthanhOo Xem bài viết
    đây là xóa phần tử trong mãng
    C++ Code:
    1. void xoaphantu(int a[],int &n,int k)
    2. {
    3. for(int i=k;i<n;i++)
    4. a[i]=a[i+1];
    5. n--;
    6. }
    Hàm này sai, lúc i = n-1 thì i+1 = n : không có phần tử a[i+1]
    đáng lẽ phải đặt n-- trước vòng lặp for

    Trích dẫn Nguyên bản được gửi bởi oOthanhOo Xem bài viết
    chèn x vào vị trí k
    C++ Code:
    1. ...
    2. //----------Bai32: chen gia tri X vao vi tri K.
    3.  
    4. void chenXvaovitriK(int a[],int &n)
    5. {   int x,k;
    6.     printf("\nNhap vao phan tu can chen: ");
    7.     scanf("%d",&x);
    8.     printf("\nNhap vao vi tri can chen: ");
    9.     scanf("%d",&k);
    10.     if (k>=0 && k<n)
    11.     {
    12.         for (int i=n;i>k;i--)
    13.             a[i]=a[i-1];
    14.         a[k]=x;
    15.         n++;
    16.     }
    17.     xuatmang(a,n);
    18. }
    Hàm này cũng thiếu sót, vì hàm chỉ chấp nhận k < n cho nên không thể chèn vào vị trí cuối mảng (vị trí n)!

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

  1. Bài tập C xóa,thêm phần tử trong mảng 1 chiều
    Gửi bởi gacongnghe trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 26-09-2015, 01:44 PM
  2. Trả lời: 5
    Bài viết cuối: 13-12-2012, 02:54 PM
  3. Bài tập C xóa phần tử trùng nhau trong mảng 1 chiều để lại 1 phần tử
    Gửi bởi ronoa trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 06-01-2012, 10:46 PM
  4. Sử dụng danh sách liên kết để thêm, xóa phần tử trong mảng
    Gửi bởi pnst_1811 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 18-04-2011, 08:18 PM
  5. Thuật toán trên C | Xóa phần tử trong dãy phần tử tăng dần?
    Gửi bởi quangphuit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-03-2010, 01:57 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