Khái niệm mảng 1 chiều:
Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu. Mảng được đặt tên và mỗi phần tử mang một chỉ số. Để mô tả mảng một chiều cần xác định kiểu của các phần tử và cách đánh chỉ số các phần tử.Để viết được chương trình trên bạn có thể sử dụng thuật toán thêm xóa phần tử trong mảng
#include <stdio.h>Kết quả của chương trình:
#define MAX 1000
void NhapMang(int a[], int n){
for(int i = 0;i < n; i++){
printf("Nhap so thu %d: ", i);
scanf("%d", &a[i]);
}
}
void XuatMang(int a[], int n){
for(int i = 0;i < n; i++){
printf("%4d", a[i]);
}
}
void ThemPhanTu(int a[], int &n, int val, int pos){
// Mang da day, khong the them.
if(n >= MAX){
return;
}
// Neu pos <= 0 => Them vao dau
if(pos < 0){
pos = 0;
}
// Neu pos >= n => Them vao cuoi
else if(pos > n){
pos = n;
}
// Dich chuyen mang de tao o trong truoc khi them.
for(int i = n; i > pos; i--){
a[i] = a[i-1];
}
// Chen val tai pos
a[pos] = val;
// Tang so luong phan tu sau khi chen.
++n;
}
void XoaPhanTu(int a[], int &n, int pos){
// Mang rong, khong the xoa.
if(n <= 0){
return;
}
// Neu pos <= 0 => Xoa dau
if(pos < 0){
pos = 0;
}
// Neu pos >= n => Xoa cuoi
else if(pos >= n){
pos = n-1;
}
// Dich chuyen mang
for(int i = pos; i < n - 1; i++){
a[i] = a[i+1];
}
// Giam so luong phan tu sau khi xoa.
--n;
}
int main(){
int a[MAX];
int n;
printf("\nNhap so luong phan tu: ");
scanf("%d", &n);
NhapMang(a, n);
XuatMang(a, n);
printf("\n=======THEM PHAN TU======\n");
int val, pos;
printf("\nNhap so can them: ");
scanf("%d", &val);
printf("\nNhap vi tri muon chen: ");
scanf("%d", &pos);
ThemPhanTu(a, n, val, pos);
printf("\nMang sau khi them: ");
XuatMang(a, n);
printf("\n=======XOA PHAN TU======\n");
printf("\nNhap vi tri muon xoa: ");
scanf("%d", &pos);
XoaPhanTu(a, n, pos);
printf("\nMang sau khi xoa: ");
XuatMang(a, n);
printf("\nDone!");
}
Nhap so luong phan tu: 5
Nhap so thu 0: 1
Nhap so thu 1: 2
Nhap so thu 2: 3
Nhap so thu 3: 4
Nhap so thu 4: 5
1 2 3 4 5
=======THEM PHAN TU======
Nhap so can them: 6
Nhap vi tri muon chen: 1
Mang sau khi them: 1 6 2 3 4 5
=======XOA PHAN TU======
Nhap vi tri muon xoa: 1
Mang sau khi xoa: 1 2 3 4 5
No comments:
Post a Comment