Chỗ vòng for xuất ra giá trị nhị phân ấy
bạn phải để j = i-1; và j>=0;
Vì sau khi ra khỏi vòng while thì giá trị của i được cộng thêm một lần nữa nên lớn hơn chỉ số của mảng 1 đơn vị.
Với lại mảng bắt đầu từ 0 nên bạn để j > 0 sẽ không xuất ra được giá trị của a[0]
Vòng while nó sẽ tính ra giâ trị 0 hoặc 1, và kiểm tra xem có bao nhiêu phần tử là 0,1(i).
Dòng for in ra 0,1. Vì in phải in từ phải qua trái. Tức là bạn tính kết quả phải ghi từ phải qua trái.
Mặt khác dãy số 01 lại là mảng 1 chiều. Phần tử cuối cùng bên phải tức là số đầu tiên ghi ra phải là phần tử thứ i-1.(ví dụ có 1010 là 4 số, vị trí của số 0 cuối bên phải là vị trí thứ 3, vị trí bắt đầu là của số 1 là [0]). Dừng in khi gặp vị trí thứ 0
Nên hàm for đúng là phải:
For(int j=i-1;j>=0;j - -)
Nếu mới học thì cố gắng học cách sử dụng công cụ để debug ( dễ hiểu hơn là xem chương trình của mình chạy thế nào ) trước tiên bạn nhé. Viết code đơn giản rồi học cách debug nó. Nó giúp bạn tiết kiệm thời gian lên diễn đàn hỏi để có thể dành vào việc học được nhiều điều hơn
Dòng 22 + 23 kìa bạn xem có gì khả nghi không.
Bởi vậy i j chỉ dùng đặt cho biến lặp thôi.
giải thích dùm e rõ được k ạ?
for(int j=i-1; j>=0;j–)
printf("%d",a[j])
bạn thử lại xem nhé
Chỗ vòng for xuất ra giá trị nhị phân ấy
bạn phải để j = i-1; và j>=0;
Vì sau khi ra khỏi vòng while thì giá trị của i được cộng thêm một lần nữa nên lớn hơn chỉ số của mảng 1 đơn vị.
Với lại mảng bắt đầu từ 0 nên bạn để j > 0 sẽ không xuất ra được giá trị của a[0]
Vòng while nó sẽ tính ra giâ trị 0 hoặc 1, và kiểm tra xem có bao nhiêu phần tử là 0,1(i).
Dòng for in ra 0,1. Vì in phải in từ phải qua trái. Tức là bạn tính kết quả phải ghi từ phải qua trái.
Mặt khác dãy số 01 lại là mảng 1 chiều. Phần tử cuối cùng bên phải tức là số đầu tiên ghi ra phải là phần tử thứ i-1.(ví dụ có 1010 là 4 số, vị trí của số 0 cuối bên phải là vị trí thứ 3, vị trí bắt đầu là của số 1 là [0]). Dừng in khi gặp vị trí thứ 0
Nên hàm for đúng là phải:
For(int j=i-1;j>=0;j - -)
Nếu mới học thì cố gắng học cách sử dụng công cụ để debug ( dễ hiểu hơn là xem chương trình của mình chạy thế nào ) trước tiên bạn nhé. Viết code đơn giản rồi học cách debug nó. Nó giúp bạn tiết kiệm thời gian lên diễn đàn hỏi để có thể dành vào việc học được nhiều điều hơn