Lỗi không chèn được phần tử mới trong mảng - C

void chen(){
	int viTri;
	int giaTriMoi;
	printf("\nnhap vi tri ban muon chen: ");
	scanf("%d", &viTri);
	printf("\nnhap gia tri ban muon chen: ");
	scanf("%d", &giaTriMoi);
	for(i=soPhanTu; i>viTri; i--){
		a[i] = a[i-1];
		a[viTri] = giaTriMoi;
	
	}
	soPhanTu++;
}

a/c cho em hỏi là chèn phần tử thế này sao không ra ạ. và sai ở đâu ạ. e thanks

Hi hainguyenhonghai1997.
Mảng trong C/C++ có kích thước cố định. Bạn không thể trèn thêm phần tử vào được.
Bạn cần dùng các cấu trúc dữ liệu có kích thước động như danh sách liên kết hoặc các cấu trúc dữ liệu được xây dựng săn.
Chúc bạn thành công.

a[viTri] = giaTriMoi;

sai ở đây, tại sao lại để trong vòng for?
xem ở dưới:

void ChenX (int a[], int &n, int X, int vitri){
	for (int i = n; i >vitri ; i--)
		a[i] = a[i-1] ;
	a[vitri] = X;
	n++;
}
1 Like

OK. Thanks b. Mình sửa đc rồi

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