Logic error code java
cái mảng a chưa đc khai báo lại giờ làm nào để khai báo lại mảng a với giá trị n mới vậy bác ơi…
Khai báo hẳn lên thành n+1 (hay khai hẳn lên n+9) đi. Rõ ràng bạn biết độ dài cuối cùng của mảng là n+1 cơ mà.
ơ là nào??? cái mảng cũ của em nó chỉ có 5 phần tử, giờ em dịch nó đi 1 phần tử nên nó mấy luôn cái giá trị a[n -1], ôi rối quá rồi
Bạn tìm được vị trí giữa i và i+1 để chèn phần tử x vào. Mảng a đang từ
a[0] a[1] ... a[i] a[i+1] ... a[n-1]
sẽ trở thành
a[0] a[1] ... a[i] x a[i+1] ... a[n-1]
Điều này đồng nghĩa với việc
a[i+1] = x
a[i+2] = a[i+1] // phàn tử a[i+1] bị tiến lên 1 ô
a[i+3] = a[i+2] // tương tự
...
a[n] = a[n-1]
Lúc này mảng a sẽ có n+1 phần tử (a có n phần tử, thêm 1 phần tử nữa thì a có mấy phần tử đây?).
không, em chạy từ dưới lên chứ chạy kia thì tất cả nó đều nhận giá trị của x hết. vì k thể for(j = n) được nên nó bị mất giá trị a[n-1]
x > a[i] thì rõ ràng a[i] != x rồi còn gì nữa
Khai mảng n+1 phần tử và n++ chưa?
à cái đấy xóa rồi :v
chưa, thì mới đang hỏi bác khai mảng mới như nào. a[] = new a[n] không đc
Khai ngay ở đầu a[] = new a[n+1]
là khai mảng với n+1 phần tử rồi còn gì nữa.
hù, cuối cùng cũng xong 1 phần. nãy nhầm, cứ nghĩ thêm như thế thì tí mình lại nhập hơn 1 giá trị a[i], :v dù sao cám ơn bác đã thông não, mới học nên nhiều chỗ k hiểu mong bác bỏ qua :V
Tạo 1 void để sắp xếp Array theo thứ tự từ bé đến lớn là xong, add số x vào rồi dùng void đấy sắp xếp lại là dc Đó là cách của mk