& là tham biến
Không có & là tham trị
1. Chèn giá trị X vào mảng ở vị trí K cho trước:
void insert(int X, int K, int &n, int a[])
{
for(int i=n+1;i>K;i--)
a[i]=a[i-1];
a[K]=X;
n++;
}
2. Xóa phần tử ở vị trí K:
void delete(int K, int &n, int a[])
{
for(int i=k;i<=n-1;i++)
a[i]=a[i+1];
n--;
}
Bài tập:
1. Xóa các phần tử âm trong mảng gồm n phần tử
void XoaAm(int &n, int a[])
{
for(int i=1;i<=n;i++)
while(a[i]<0) delete(i,n,a);
}
2. Chèn 1 giá trị X vào trong mảng sao cho đảm bảo mảng có giá trị tăng dần(giả sử mảng đã sắp xếp tăng dần)
void ChenTang(int X, int &n, int a[])
{
int k=1;
while(a[k]<x && k<=n) k++;
n++;
for(int i=n;i>k;i--)
a[i]=a[i-1];
a[k]=x;
}
3. Trộn 2 mảng thành mảng tăng dần(không sử dụng sắp xếp)
void TronMang(int m, int a[], int n, int b[], int &k, int c[])
{
int i=1, j=1,k=0;
while(i<=m && j<=n)
{
k++;
if(a[i]<b[j]) {c[k]=a[i]; i++;}
else {c[k]=b[j]; j++;}
}
while(i<=m) {k++; c[k]=a[i];i++;}//b het truoc
while(j<=n) {k++; c[k]=b[j];j++;}//a het truoc
}