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

Đề tài: [Xin Hướng dẫn] Xóa n phần tử trong mảng bắt đầu từ vị trí thứ p

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

    Mặc định [Xin Hướng dẫn] Xóa n phần tử trong mảng bắt đầu từ vị trí thứ p

    em làm như sau mà không đúng có ai giúp em ko :(
    Code:
    #include<stdio.h>
    #include<conio.h>
    void nhap(int a[], int n)
    {
    	int i;
    	for(i=0;i<n;i++)
    	{
    		printf("\nGia tri thu: a[%d]= ",i);
    		scanf("%d",&a[i]);
    	}
    }
    void xuat(int a[], int n)
    {
    	int i;
    	for(i=0;i<n;i++)
    		printf("%d    ",a[i]);
    }
    void Delete(int a[], int n)
    {
    	int m,p,i;
    	printf("\nNhap so phan tu m: ");
    	scanf("%d",&m);
    	printf("\nNhap vi tri p: ");
    	scanf("%d",&p);
        for(int i=p;i<n-m;i++)
    		a[i]=a[i+m];
    		n--;
    		for(i=0;i<n;i++)
    	printf("%d    ",a[i]);
    }
    void main()
    {
    	int a[100],i,n;
    	printf("\nNhap so phan tu: ");
    	scanf("%d",&n);
    	nhap(a,n);
    	Delete(a,n);
    	getch();
    }

    em cảm ơn nhiều

  2. #2
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    mình mới đọc sơ sơ nhưng bạn nên kiểm tra lại từ vị trí thứ p + m ptu nữa nó có vượt qua độ dài của mảng ko, xong thì phải cập nhật lại độ dài của mảng
    HT117-5277

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

    Trích dẫn Nguyên bản được gửi bởi treatmaster Xem bài viết
    mình mới đọc sơ sơ nhưng bạn nên kiểm tra lại từ vị trí thứ p + m ptu nữa nó có vượt qua độ dài của mảng ko, xong thì phải cập nhật lại độ dài của mảng
    em xem rồi mà vẫn không được.. anh sửa lại dùm em với. tks..

  4. #4
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Code:
    void Delete(int a[], int &n)
    {
    	int m, p;		// m la so phan tu, p la vi tri	
    
    	printf("nhap vao so ptu m:");
    	scanf("%d",&m);
    	do
    	{
    		printf("nhap vi tri p:");
    		scanf("%d",&p);
    		if(m+p>n)	
    			printf("ngoai mang");
    	}
    	while(m+p>n)
    	
    	for(int i=p+m;i<n;i++)
    	{
    		a[i-m] = a[i];
    	}
    	n -= m;
    }
    bạn test thử xem.
    HT117-5277

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

    Trích dẫn Nguyên bản được gửi bởi treatmaster Xem bài viết
    Code:
    void Delete(int a[], int &n)
    {
    	int m, p;		// m la so phan tu, p la vi tri	
    
    	printf("nhap vao so ptu m:");
    	scanf("%d",&m);
    	do
    	{
    		printf("nhap vi tri p:");
    		scanf("%d",&p);
    		if(m+p>n)	
    			printf("ngoai mang");
    	}
    	while(m+p>n)
    	
    	for(int i=p+m;i<n;i++)
    	{
    		a[i-m] = a[i];
    	}
    	n -= m;
    }
    bạn test thử xem.
    em cảm ơn nha.. để em test thử

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

  1. xóa các phần tử giống nhau trong mảng chỉ để lại 1 phần tử
    Gửi bởi trungbd trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 30
    Bài viết cuối: 12-08-2013, 04:01 PM
  2. 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
  3. Kỹ thuật C++0x Xóa không được 1 phần tử bất kì và xóa tại vị trí bất kì trong DSLK
    Gửi bởi datinh_o0o7 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: 19-03-2011, 10:24 PM
  4. Bài tập C++ xóa sinh viên trong dssv , ai test dùm em , xóa sv thứ 3 mà nó toàn xóa sv thứ 4
    Gửi bởi prt_awm trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 08-11-2010, 02:24 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