30/09/2018, 16:20
Xóa mảng từ vị trí từ 1 vị trí cho trước tới cuối mảng?
Em đã làm 2 tiếng đồng hồ nhưng vẫn không ra!
Đây là code em viết. mong mọi người kiểm tra giúp em!
#include<stdio.h>
#include<conio.h>
int nhap(int a[],int n)
{
for(int i=0; i<n; i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
}
int xoamang(int a[],int &n,int vitrixoa)
{
for(int j=vitrixoa; j<n; j++)
{
for(int i=vitrixoa; i<n-1; i++)
{
a[i]=a[i+1];
n--;
}
}
}
int xuatmang(int a[],int n)
{
for(int i=0; i<n; i++)
{
printf("%d ",a[i]);
}
}
main()
{
int a[100],n=5,vitrixoa=2;
nhap(a,n);
printf("
");
xoamang(a,n,vitrixoa);
xuatmang(a,n);
}
Bài liên quan
Thuật toán của em là sao mà phức tạp vậy? Lười đọc quá Em chỉ cần chạy từ vị trí đó tới cuối mảng gán lại mảng = giá trị mà em mặc định là rỗng (em tự chọn, 0 chẳng hạn) sau đó resize lại n thôi (n = vitri). Nếu không cần thiết gán lại thì em resize n thôi cũng được
cám ơn anh nhiều nhé!
để em làm lại !
cần gì hả bạn,muốn hiển thị ra mảng đã xóa rồi thì chỉ cần for từ 0 đến vị trí xóa thôi là xong
Mình Sửa lại như thế này bạn test xem thử.
mà bạn viết hàm nếu hàm đó không trả về giá trị nào thì nên dùng hàm void. còn dùm hàm kiểu int thì phải return về một giá trị có kiểu là int
cám ơn bạn .
code của bạn là xóa một phần tử bất kì mà. ý mình là xóa từ vị trí bắt đầu xóa cho tới cuối mảng luôn.!