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

Đề tài: xóa,thêm phần tử trong mảng 1 chiều

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

    Mặc định xóa,thêm phần tử trong mảng 1 chiều

    sao nó xóa không được ,chỉ em với.
    Code:
    #include <stdio.h>
    #include <conio.h>
    void nhapmang(int a[] ,int n)
    {
    	int i;
    	for(i=0;i<n;i++){
    	  printf("nhap vao phan thu a[%d]",i);
    	  scanf("%d",&a[i]);
    	}
    }
    void xuatmang(int a[],int n)
    {
    	int i;
    	printf("cac phan tu cua mang la:");
    	for(i=0;i<n;i++)
    	  printf(" %d  ",a[i]);
    	  printf("\n");
    }
    int xoa(int a[],int n)
    {
    	int i,j;
    	printf("ban muon xoa ptu thu may:");
    	scanf("%d",&j);
    	for(i=j;i<n;i++)
    	 a[i]=a[i+1];
    	 n--;
    }
    void main()
    {
    	 int n;
    	 int a[100];
    	 printf("nhap vao sp ptu cua mang ");
    	 scanf("%d",&n);
    	 nhapmang(a,n);
    	 xoa(a,n);
    	 xuatmang(a,n);
    	 getch();
    	}

  2. #2
    Ngày gia nhập
    10 2010
    Bài viết
    177

    Trích dẫn Nguyên bản được gửi bởi gacongnghe Xem bài viết
    sao nó xóa không được ,chỉ em với.
    Code:
    #include <stdio.h>
    int xoa(int a[],int n)
    {
    	int i,j;
    	printf("ban muon xoa ptu thu may:");
    	scanf("%d",&j);
    	for(i=j;i<n;i++)
    	 a[i]=a[i+1];
    	 n--;
    }
    void main()
    {
    	 int n;
    	 int a[100];
    	 printf("nhap vao sp ptu cua mang ");
    	 scanf("%d",&n);
    	 nhapmang(a,n);
    	 xoa(a,n);
    	 xuatmang(a,n);
    	 getch();
    	}
    + Sao hàm xóa lại ko có giá trị trả về, hàm xóa có giá trị trả về kiểu int nếu cậu ko cho nó giá trị trả về thì lỗi chương trình là cái chắc.
    + Khi cậu xóa 1 phần tử trong mảng thì số phần tử sẽ thay đổi => Cậu phải truyền n là &n mới đúng

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

    bạn nói rõ hơn được không

  4. #4
    Ngày gia nhập
    01 2011
    Bài viết
    11

    Trích dẫn Nguyên bản được gửi bởi nndung179 Xem bài viết
    + Sao hàm xóa lại ko có giá trị trả về, hàm xóa có giá trị trả về kiểu int nếu cậu ko cho nó giá trị trả về thì lỗi chương trình là cái chắc.
    + Khi cậu xóa 1 phần tử trong mảng thì số phần tử sẽ thay đổi => Cậu phải truyền n là &n mới đúng
    n chỉ là biến đếm, truyền n hoặc &n đâu có khác nhau
    ps gacongnghe: dùng con trỏ làm đối cho mảng truyền vào trong hàm xóa
    Code is more than binary. Its poetry

  5. #5
    Ngày gia nhập
    10 2010
    Bài viết
    177

    Trích dẫn Nguyên bản được gửi bởi nekyvn Xem bài viết
    n chỉ là biến đếm, truyền n hoặc &n đâu có khác nhau
    ps gacongnghe: dùng con trỏ làm đối cho mảng truyền vào trong hàm xóa
    Mình nói gì sai à. Không phải xóa 1 phần tử trong mảng là thay đổi số lượng phần tử của mảng à ?
    + n là số lượng phần tử của mảng đó bạn chứ đếm gì ở đây

    C++ Code:
    1. void xoa(int a[], int &n)
    2. {
    3.     int i,j;
    4.     printf("ban muon xoa ptu thu may:");
    5.     scanf("%d",&j);
    6.     for(i=j;i<n;i++)
    7.      a[i]=a[i+1];
    8.      n--;
    9. }

  6. #6
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Mặc định xóa,thêm phần tử trong mảng 1 chiều

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. void nhapmang(int a[] ,int n)
    4. {
    5.     int i = 0;
    6.     for(i = 0; i < n; ++i)
    7.     {
    8.         printf("nhap vao phan a[%d] = ",i);
    9.         scanf("%d", &a[i]);
    10.     }
    11. }
    12. void xuatmang(int a[],int n)
    13. {
    14.     int i = 0;
    15.     printf("cac phan tu cua mang la:");
    16.     for(i = 0;i < n; ++i)
    17.         printf(" %d", a[i]);
    18.     printf("\n");
    19. }
    20. int xoa(int a[],int n)
    21. {
    22.     int i = 0, k = 0;
    23.     printf("Ban muon xoa ptu thu may:");
    24.     scanf("%d", &k);
    25.     if(0 < k && k < n)
    26.     {
    27.         for(i = k - 1; i < n - 1; ++i)
    28.             a[i] = a[i + 1];
    29.         --n;
    30.     }
    31.     return n;
    32. }
    33. int main()
    34. {
    35.     int n = 0;
    36.     int a[100];
    37.     printf("Nhap vao sp ptu cua mang ");
    38.     scanf("%d", &n);
    39.     nhapmang(a, n);
    40.     n = xoa(a, n);
    41.     xuatmang(a, n);
    42.     getch();
    43. }
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

  7. #7
    Ngày gia nhập
    08 2015
    Bài viết
    0

    #include <stdio.h>
    #include <conio.h>
    #define MAX 100

    // Khai báo các nguyên mẫu hàm.
    void NhapMang(int [], int);
    void XuatMang(int [], int);
    void XoaPhanTu(int [], int &, int);

    void NhapMang(int a[], int n) // n: Số lượng phần tử.
    {
    // Nếu tham số chỗ n có dấu & tức là sẽ nhập n ở ngay trong hàm này.

    for(int i = 0; i < n; i++)
    {
    printf("\nNhap vao a[%d] = ", i);
    scanf("%d", &a[i]);
    }
    }

    void XuatMang(int a[], int n)
    {
    for(int i = 0; i < n; i++)
    {
    printf("%4d", a[i]);
    }
    }

    // Xóa phần tử tại vị trí cụ thể.
    void XoaPhanTu(int a[], int &n, int ViTriXoa)
    {
    /* TAY TRÁI */
    for(int i = ViTriXoa; i < n - 1; i++)
    {
    a[i] = a[i + 1];
    }

    /* TAY PHẢI */
    /* for(int i = ViTriXoa + 1; i <= n - 1; i++)
    {
    a[i - 1] = a[i];
    } */
    n--; //Giảm số lượng xuống.
    }

    void XoaTatCaSoChan(int a[], int &n)
    {
    for(int i = 0; i < n; i++)
    {
    if(a[i] % 2 == 0)
    {
    XoaPhanTu(a, n, i);
    i--; // Lùi về xét tiếp số bên cạnh số vừa xóa xong.
    }
    }
    }

    int main(int argc, char **argv)
    {
    int a[MAX]; // Khai báo mảng số nguyên.
    int n; // Số lượng phần tử của mảng.

    // Nhập số lượng phần tử của mảng. Số lượng nằm trong đoạn từ 0 --> MAX.
    do{
    printf("\nNhap vao so luong phan tu cua mang: ");
    scanf("%d", &n);

    if(n < 0 || n > MAX)
    {
    printf("\nSo luong phan tu khong hop le. Xin kiem tra lai !");
    }
    }while(n < 0 || n > MAX);

    NhapMang(a, n);
    XuatMang(a, n);

    printf("\nMang sau khi xoa tat ca cac so chan la: \n");
    XoaTatCaSoChan(a, n);
    XuatMang(a, n);


    // 1 4 5 6
    getch();
    return 0;
    }

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

  1. Bài tập C++ Thêm một phần tử vào trong mảng động 1 chiều
    Gửi bởi dragon7676 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 04-04-2013, 09:49 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. xóa phần tử là số chính phương trong mảng 1 chiều. Xem giúp code của mình với?
    Gửi bởi loveboom3012 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 5
    Bài viết cuối: 23-08-2011, 07:07 PM
  5. 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

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