CHÈN PHẦN TỬ VÀO MẢNG 1 CHIỀU

     

Giả sử, mảng một chiều ban đầu của tôi là một mảng int a<10> có các phần tử là: 11,22,33,44,55,66,77,88,99,10; Nghĩa là mảng bên trên có 10 phần tử có kiểu số nguyên.

int main() //khai bao mang a co 10 phan tu int a<10> = 11,22,33,44,55,66,77,88,99,10;Tôi sẽ biểu diễn mảng trên theo hình minh họa dưới đây:

*

Giả sử tôi cần thêm một phần tử là số 111 vào trong mảng và đặt nó nằm vị trí index = 7, nghĩa là phần tử này sau khi được thêm vào mảng sẽ nằm ở giữa phần tử 77 và 88. Coi hình mặt dưới:

*

Như vậy, tôi cần thực hiện lùi toàn bộ các số phía sau nơi được thêm(bao tất cả cả địa chỉ thêm) về vùng sau 1 index sau đó tăng kích thước của mảng lên 1 đơn vị. Xem hình dưới để dễ hình dung rộng việc thêm một phần tử vào mảng:

*

Tóm tắt các bước thêm phần tử vào trong mảng một chiều

Nhập vào vị trí index và phần tử cần thêm vào mảngKiểm tra mảng đã đầy chưa, nếu đã đầy thì ko thể thêm phần tửNếu địa chỉ bằng 0 thì thêm vào đầu, nếu địa chỉ bằng N thì thêm vào cuối (N ở phía trên là số lượng phần tử)Dịch chuyển mảng từ vị trí cần thêm về mặt trái 1 1-1 vịSau lúc đã dịch chuyển đến vị trí cần thêm, thực hiện thêm phần tử đó vàoTăng kích thước mảng lên 1 solo vị2.Chương trình thêm phần tử vào trong mảngDựa vào các bước thêm phần tử vào mảng đã được nêu ở phần trên, chương trình dưới trên đây được viết trực tiếp trong hàm main và thực hiện thao tác thêm một phần tử vào vào mảng.


Bạn đang xem: Chèn phần tử vào mảng 1 chiều


Xem thêm: Đơn Vị Đo Cường Độ Dòng Điện, Đơn Vị Cường Độ Dòng Điện Là Gì

Với mảng ban đầu là int a<10> = 11,22,33,44,55,66,77,88,99,10 và phần tử cần thêm vào là 111 tại vị trí index = 7

#include int main() //khai bao kich thuoc với n = 10 int n = 10; //khai bao mang gom n phan tu int a = 11,22,33,44,55,66,77,88,99,10; //phan tu can them vao có int PhanTu = 111; //vi tri can them int index = 7; //neu index = n thi gan index = n de them vao cuoi với if(index >= n) index = n; //dich chuyen cac phan tu for(int i = n; i > index; i--) //dich chuyen phan tu thanh lịch ben trai a = a; //them phan tu 111 vao vi tri index 7 a = PhanTu; //tang kich thuoc sở hữu len 1 don vi n++;Cách trên được viết trực tiếp ở hàm main, tuy nhiên ta hoàn toàn có thể xây dựng một hàm thêm phần tử và gọi lại chúng ở vào hàm main. Hàm void ThemPhanTu(int a<>, int index, int PhanTu, int &n) dưới trên đây nhận các tham số là: int a<> là mảng cần thêm phần tử, int index là địa chỉ cần thêm, int PhanTu là giá trị cần thêm vào mảng và int &n là tham chiếu đến biến n số lượng phần tử của mảng để khi thực hiện thêm phần tử ta sẽ tăng biến n lên 1 đối kháng vị.

#include void ThemPhanTu(int a<>, int index, int PhanTu, int &n) //neu index = 10 thi gan index = 10 de them vao cuoi với if(index >= n) index = n; //dich chuyen cac phan tu for(int i = n; i > index; i--) //dich chuyen phan tu thanh lịch ben trai a = a; //them phan tu 111 vao vi tri index 7 a = PhanTu; //tang kich thuoc với len 1 don vi n++;int main() //khai bao kich thuoc có n = 10 int n = 10; //khai bao sở hữu int a = 11,22,33,44,55,66,77,88,99,10; //phan tu can them vao sở hữu int PhanTu = 111; //vi tri can them int index = 7; //goi đam mê them phan tu truyen vao có a,vi tri index can them, phan tu can them va va so luong phan tu n cua có ThemPhanTu(a,index, PhanTu, n);3.Nhập xuất và thêm phần tử vào vào mảngThay vì khai báo số lượng n = 10, index = 7 và phần tử = 111 ta có thể đến người dùng nhập các giá trị trên từ bàn phím. Để thực hiện được việc đó ta cần sự có mặt của các hàm Nhap(), Xuat(). Các hàm này đã được tôi nêu ra ở bài trước, nếu bạn quên vui lòng đọc lại!

#include void Nhap(int a<>, int n) //dung vong lap for duyet tu vi tri index thu 0 đến den vi tri n - 1 for(int i = 0; i = 10 thi gan index = 10 de them vao cuoi mang if(index >= n) index = n; //dich chuyen cac phan tu for(int i = n; i > index; i--) //dich chuyen phan tu sang ben trai a = a; //them phan tu 111 vao vi tri index 7 a = PhanTu; //tang kich thuoc có len 1 don vi n++;int main() //khai bao kich thuoc với n int n; //nhap vao n printf("NHAP N: "); scanf("%d",&n); //khai bao sở hữu gom n phan tu int a; //goi si mê nhap cac phan tu Nhap(a,n); //goi ham xuat Xuat(a,n); //nhap vao phan tu can them int PhanTu; printf("NHAP PHAN TU CAN THEM: "); scanf("%d",&PhanTu); //nhap vao vi tri can them int index; printf("NHAP VI TRI CAN THEM: "); scanf("%d",&index); //goi say mê them phan tu truyen vao mang a,vi tri index can them, phan tu can them va va so luong phan tu n cua với ThemPhanTu(a,index, PhanTu, n); //goi đắm đuối xuat sau thời điểm them phan tu Xuat(a,n);




Xem thêm: Top 15 Bài Văn Biểu Cảm Lớp 7 Về Loài Cây Em Yêu Thích Nhất Năm 2021 (Dàn Ý

Facebook TwitterLinkedinint%20main()%20%20%20%20//khai%20bao%20kich%20thuoc%20mang%20n%20=%2010%20%20%20%20int%20n%20=%2010;%20%20%20%20//khai%20bao%20mang%20gom%20n%20phan%20tu%20%20%20%20int%20a%5Bn%5D%20=%2011,22,33,44,55,66,77,88,99,10;%20%20%20%20//phan%20tu%20can%20them%20vao%20mang%20%20%20%20int%20PhanTu%20=%20111;%20%20%20%20//vi%20tri%20can%20them%20%20%20%20int%20index%20=%207;%20%20%20%20//neu%20index%20=%20n%20thi%20gan%20index%20=%20n%20de%20them%20vao%20cuoi%20mang%20%20%20%20if(index%20>=%20n)%20%20%20%20%20%20%20%20index%20=%20n;%20%20%20%20%20%20%20%20//dich%20chuyen%20cac%20phan%20tu%20%20%20%20%20for(int%20i%20=%20n;%20i%20>%20index;%20i--)%20%20%20%20%20%20%20%20//dich%20chuyen%20phan%20tu%20sang%20ben%20trai%20%20%20%20%20%20%20%20a%5Bi%5D%20=%20a%5Bi-1%5D;%20%20%20%20%20%20%20%20//them%20phan%20tu%20111%20vao%20vi%20tri%20index%207%20%20%20%20a%5Bindex%5D%20=%20PhanTu;%20%20%20%20//tang%20kich%20thuoc%20mang%20len%201%20don%20vi%20%20%20%20n++;/preCách%20trên%20được%20viết%20trực%20tiếp%20ở%20hàm%20main,%20tuy%20nhiên%20ta%20hoàn%20toàn%20có%20thể%20xây%20dựng%20một%20hàm%20thêm%20phần%20tử%20và%20gọi%20lại%20chúng%20ở%20trong%20hàm%20main.%20Hàm%20strongvoid%20ThemPhanTu(/strongemint%20a%5B%5D,%20int%20index,%20int%20PhanTu,%20int%20&n/emstrong)%20/strongdưới%20đây%20nhận%20các%20tham%20số%20là:%20int%20a%5B%5D%20là%20mảng%20cần%20thêm%20phần%20tử,%20int%20index%20là%20địa%20chỉ%20cần%20thêm,%20int%20PhanTu%20là%20giá%20trị%20cần%20thêm%20vào%20mảng%20và%20int%20&n%20là%20tham%20chiếu%20đến%20biến%20n%20số%20lượng%20phần%20tử%20của%20mảng%20để%20khi%20thực%20hiện%20thêm%20phần%20tử%20ta%20sẽ%20tăng%20biến%20n%20lên%201%20đơn%20vị.pre%20class=EnlighterJSRAW%20data-enlighter-language=c#include%20void%20ThemPhanTu(int%20a%5B%5D,%20int%20index,%20int%20PhanTu,%20int%20&n)%20%20%20%20//neu%20index%20=%2010%20thi%20gan%20index%20=%2010%20de%20them%20vao%20cuoi%20mang%20%20%20%20if(index%20>=%20n)%20%20%20%20%20%20%20%20index%20=%20n;%20%20%20%20%20%20%20%20//dich%20chuyen%20cac%20phan%20tu%20%20%20%20%20for(int%20i%20=%20n;%20i%20>%20index;%20i--)%20%20%20%20%20%20%20%20//dich%20chuyen%20phan%20tu%20sang%20ben%20trai%20%20%20%20%20%20%20%20a%5Bi%5D%20=%20a%5Bi-1%5D;%20%20%20%20%20%20%20%20//them%20phan%20tu%20111%20vao%20vi%20tri%20index%207%20%20%20%20a%5Bindex%5D%20=%20PhanTu;%20%20%20%20//tang%20kich%20thuoc%20mang%20len%201%20don%20vi%20%20%20%20n++;int%20main()%20%20%20%20//khai%20bao%20kich%20thuoc%20mang%20n%20=%2010%20%20%20%20int%20n%20=%2010;%20%20%20%20//khai%20bao%20mang%20%20%20%20%20int%20a%5Bn%5D%20=%2011,22,33,44,55,66,77,88,99,10;%20%20%20%20//phan%20tu%20can%20them%20vao%20mang%20%20%20%20int%20PhanTu%20=%20111;%20%20%20%20//vi%20tri%20can%20them%20%20%20%20int%20index%20=%207;%20%20%20%20//goi%20ham%20them%20phan%20tu%20truyen%20vao%20mang%20a,vi%20tri%20index%20can%20them,%20phan%20tu%20can%20them%20va%20%20va%20so%20luong%20phan%20tu%20n%20cua%20mang%20%20%20%20ThemPhanTu(a,index,%20PhanTu,%20n);/preh13.Nhập%20xuất%20và%20thêm%20phần%20tử%20vào%20trong%20mảng/h1Thay%20vì%20khai%20báo%20số%20lượng%20n%20=%2010,%20index%20=%207%20và%20phần%20tử%20=%20111%20ta%20có%20thể%20cho%20người%20dùng%20nhập%20các%20giá%20trị%20trên%20từ%20bàn%20phím.%20Để%20thực%20hiện%20được%20việc%20đó%20ta%20cần%20sự%20có%20mặt%20của%20các%20hàm%20Nhap(),%20Xuat().%20Các%20hàm%20này%20đã%20được%20tôi%20nêu%20ra%20ở%20bài%20trước,%20nếu%20bạn%20quên%20vui%20lòng%20đọc%20lại!pre%20class=EnlighterJSRAW%20data-enlighter-language=c#include%20void%20Nhap(int%20a%5B%5D,%20int%20n)%20%20%20%20//dung%20vong%20lap%20for%20duyet%20tu%20vi%20tri%20index%20thu%200%20cho%20den%20vi%20tri%20n%20-%201%20%20%20%20%20for(int%20i%20=%200;%20i%20=%2010%20thi%20gan%20index%20=%2010%20de%20them%20vao%20cuoi%20mang%20%20%20%20if(index%20>=%20n)%20%20%20%20%20%20%20%20index%20=%20n;%20%20%20%20%20%20%20%20//dich%20chuyen%20cac%20phan%20tu%20%20%20%20%20for(int%20i%20=%20n;%20i%20>%20index;%20i--)%20%20%20%20%20%20%20%20//dich%20chuyen%20phan%20tu%20sang%20ben%20trai%20%20%20%20%20%20%20%20a%5Bi%5D%20=%20a%5Bi-1%5D;%20%20%20%20%20%20%20%20//them%20phan%20tu%20111%20vao%20vi%20tri%20index%207%20%20%20%20a%5Bindex%5D%20=%20PhanTu;%20%20%20%20//tang%20kich%20thuoc%20mang%20len%201%20don%20vi%20%20%20%20n++;int%20main()%20%20%20%20//khai%20bao%20kich%20thuoc%20mang%20n%20%20%20%20%20int%20n;%20%20%20%20//nhap%20vao%20n%20%20%20%20printf(NHAP%20N:%20);%20%20%20%20scanf(%d,&n);%20%20%20%20//khai%20bao%20mang%20gom%20n%20phan%20tu%20%20%20%20int%20a%5Bn%5D;%20%20%20%20//goi%20ham%20nhap%20cac%20phan%20tu%20%20%20%20Nhap(a,n);%20%20%20%20//goi%20ham%20xuat%20%20%20%20Xuat(a,n);%20%20%20%20//nhap%20vao%20phan%20tu%20can%20them%20%20%20%20int%20PhanTu;%20%20%20%20printf(NHAP%20PHAN%20TU%20CAN%20THEM:%20);%20%20%20%20scanf(%d,&PhanTu);%20%20%20%20//nhap%20vao%20vi%20tri%20can%20them%20%20%20%20int%20index;%20%20%20%20printf(NHAP%20VI%20TRI%20CAN%20THEM:%20);%20%20%20%20scanf(%d,&index);%20%20%20%20//goi%20ham%20them%20phan%20tu%20truyen%20vao%20mang%20a,vi%20tri%20index%20can%20them,%20phan%20tu%20can%20them%20va%20%20va%20so%20luong%20phan%20tu%20n%20cua%20mang%20%20%20%20ThemPhanTu(a,index,%20PhanTu,%20n);%20%20%20%20//goi%20ham%20xuat%20sau%20khi%20them%20phan%20tu%20%20%20%20Xuat(a,n);/pre" target="_blank">Pinterest