Chèn 1 số vào mảng trong C

Mọi người giải thích cho em ý nghĩa đoan code mà em đánh dấu với ạ, suy nghĩ hoài mà không biết nó như thế nào cả.

#include<stdio.h>
#include<conio.h>
int a[100], b[100];
void main()
{
	int i,j, n,k,x;
	printf("nhap so phan tu cua mang: ");
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		printf("a[%d]=", i + 1);
		scanf("%d", &a[i]);
	}
	printf("mang da nhap la: \n");
	for (i=0;i < n;i++)
	{
		printf(" %d ", a[i]);
	}
	printf("\nnhap vi tri muon chen k=");
	scanf("%d", &k);
	printf("gia tri cua phan tu, x=");
	scanf("%d", &x);
	for (i=0; i < k-1;i++) 
	{
		b[i]=a[i];
	}
	b[k-1]=x;
/*???	for (j=i; j < n ;j++) 
	{
		k++;
		b[k-1]=a[j];
	}
	for (i = 0; i < n + 1; i++)
	{
		a[i] = b[i];
	}
	printf("mang sau khi chen them la:\n");
	for (i = 0; i < n + 1; i++) 
		printf(" %d ", a[i]);      ??????*/
	getch();
}
  • Tạo 2 mảng a, b chứa tối đa 100 phần tử
  • Nhập giá trị mảng a rồi in ra;
  • Nhập vị trí muốn chèn k và giá trị chèn x
  • a[0] đến a[k-2] gán sang b[0] đến b[k-2]
  • Gán b[k-1] = x; // gán x vào vị trí thứ k
  • a[k-1] tới a[n] gán sang b[k] đến b[n+1] // n+1 vì đã chèn thêm 1 phần tử x tại b[k-1]
  • Gán lại mảng b trả về mảng a
  • In ra mảng a
1 Like

Cảm ơn bác, em đã hiểu rồi :smiley:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?