http://codepad.org/B0XUh6a4 Do em đang làm 1 bài tập lớn. Bài này chỉ là 1 trong 32 bài em đang làm thôi. Nên code khá dài và nhiều,
Bài này nằm ở line 488-513
Xóa k phần tử liên tiếp trong mảng, bắt đầu từ 1 vị trí x cho trước?
từ từ nhé đọc cái này xong rồi làm theo. forum mình theo hướng thảo luận để cùng học và giải đáp
Anh đã sửa nội dung lại rồi đấy, em thêm phần em bị lỗi chỗ nào nữa là được
cay quá xíu làm mấy hàm thêm xoá cập nhật chèn mảng 1 chiều lun anh nhờ
ủa, sao em không thấy sữa gì hết
A sửa lại cách trình bày câu hỏi của em cho nó dễ hiểu đấy Kelvin ơi Anh có biết em bị lỗi gì đâu?
Nếu chung là bài này e chưa biết làm. A chỉ em làm với.Bí lắm luôn rồi
À, tại cách suy nghĩ của em nó bị nhầm lẫn, anh cho em bài giải nhé. Không phải vì em bí mà anh cho bài giải, mà vì em đã làm, và làm không được anh mới đưa em bài giải
#include <stdio.h>
#define SIZE 10
void xoaNhieuPhanTu(int a[], int *n, int viTriXoa,int soLuongXoa)
{
for(int i = viTriXoa; i < *n - soLuongXoa; ++i)
a[i] = a[i+soLuongXoa];
*n -= soLuongXoa;
}
int main()
{
int a[SIZE] = {0,1,2,3,4,5,6,7,8,9};
int n = SIZE;
xoaNhieuPhanTu(a, &n, 3, 2);
printf("Mang moi\n");
for(int i = 0; i < n; ++i)
printf("%d ", a[i]);
return 0;
}
P/S: Em đặt tên biến, tên hàm rất tốt, dễ hiểu, anh thích em rồi đấy
Con trỏ chưa học anh ơi
Thế em đổi con trỏ lại thành reference. Vì cái em đang học là C, nhưng thầy cô lại dạy C++. Tức là sử dụng dấu & (reference) hay còn gọi là tham chiếu.
Em cứ thay con trỏ bằng & nếu em thích và sử đụng như em hiểu. Anh chỉ dùng con trỏ để cập nhật lại giá trị của n.
Đây là code sử dụng & nếu em không biết cách chuyển, vì em chưa học con trỏ.
#include <stdio.h>
#define SIZE 10
void xoaNhieuPhanTu(int a[], int &n, int viTriXoa,int soLuongXoa)
{
for(int i = viTriXoa; i < n - soLuongXoa; ++i)
a[i] = a[i+soLuongXoa];
n -= soLuongXoa;
}
int main()
{
int a[SIZE] = {0,1,2,3,4,5,6,7,8,9};
int n = SIZE;
xoaNhieuPhanTu(a, n, 3, 2);
printf("Mang moi\n");
for(int i = 0; i < n; ++i)
printf("%d ", a[i]);
return 0;
}
Chú ý quan trọng: & mang ý nghĩa tham chiếu chỉ có trong C++, không có trong C.
Tức là những chổ nào có dấu * thay bằng & hả anh?
Anh đã update ở trên, em để ý nhé. Anh thích những câu hỏi rõ ràng, khó đến mấy anh cũng cố giải quyết (P/S: Khi anh nông nổi)
Chứ mấy câu @Honey_moon hỏi khó quá anh cũng không trả lời :trollface:
thực sự có 1 cách nữa là bạn tạo 1 mảng mới gồm những phần tử còn lại của mảng cũ chả bjo thấy A Đạt khen em đặt tên hay code đẹp. em đặt tên biến con lạc đà cơ mà :trollface:
khó với lười nó khác nhau. thông thường em bí mới dụ dỗ câu kéo lừa lọc thông đồng gọi anh thôi.
Em còn đặt tên biến i,j,l,m,n,k, nữa không? Khen người mới chứ ai khen ma cũ :trollface:
I moved 2 posts to a new topic: sắp xếp các phần tử chẳn dồn về trước và xếp tăng dần, các phần tử lẽ về cuỗi mãng và cũng xếp tăng dần
biến i và j cho for biến n cho số lượng phần tử n=number còn lại là đặt dài. thế hàm hoán vị nhỏ mà a đặt dài loàng ngoàng à
nếu viTriXoa = 6, soLuongXoa =5 thì sao nhỉ?
Vậy thì
if (viTriXoa trong khoảng cho phép) {
// thực hiện việc xoá
}
Thay vì +1 thì giờ +5 bỏ qua 5 pt.