Sao chương trình e code dưới đây thì nó chỉ in ra 3 số khi nhập n=2 vào vậy ạ?
.....
void gen(int a[], int n)
{
for(int i=n; i>=1; i--){
if(a[i]==0){
a[i]=1;
for(int j=i+1; j<=n; j++){
a[j]=0;}
}
}
}
.....
Sao chương trình e code dưới đây thì nó chỉ in ra 3 số khi nhập n=2 vào vậy ạ?
.....
void gen(int a[], int n)
{
for(int i=n; i>=1; i--){
if(a[i]==0){
a[i]=1;
for(int j=i+1; j<=n; j++){
a[j]=0;}
}
}
}
.....
Bạn không thể xác định được code của bạn như thế nào sao?
dạ thiếu mất số 01 ạ
dạ e cũng xem đi xem lại rồi vẫn chưa biết nó lỗi chỗ nào nên mới hỏi. chứ e xác định được thì em hỏi làm gì ạ
Mình chạy thử code của bạn thì thấy thế này:
n = 2
1:00
2:10
3:11
n = 3
1:000
2:100
3:110
4:111
Có vẻ hàm sinh giá trị kế tiếp đang đi từ trái qua phải
Sai ở hàm gen
. Đúng ra là không có vòng lặp lồng.
Giờ quay lại phép +1. Băt dầu từ phải sang trái thì 1 + 1 = 0 nhớ 1… cho đến 0 + 1. Tương tự với bất kì cơ số nào.
nghe cũng hợp lý đấy chứ
nhưng mà thật ra thì chẳng hợp lý tí nào
phương pháp làm bài tập code là gì?
kết quả ra sai thì sao?
chương trình của bạn có nhiều bước, ví dụ như 10 bước
bước 1 có kết quả là x1, bước 2 thì kết quả là x2…
bạn cần phải kiểm tra xem sau mỗi bước, chương trình có chạy đúng ý của bạn chưa, nếu sai ở đâu thì kiểm tra lại bước đó
chứ không phải ra sai thì đi hỏi người khác, làm sao người ta biết ý tưởng của bạn, ý tưởng của bạn đã chắc là đúng chưa,
bạn hỏi thì người ta phải chạy code và nghĩ ra cái input để test? nếu đúng lại phải nghĩ ra input khác cho nó sai để tìm câu trả lời? rồi sau đó tự đọc code của bạn? rồi sau đó đoán ý tưởng của bạn? rồi so sánh với cái đề bài để biết ý tưởng của bạn bị sai? rồi lại confirm với bạn rằng ý tưởng của bạn sai hay bước implement của bạn bị sai? rồi sửa giúp bạn?
Ở bài này code chỉ có vài dòng, nên chuyện bạn nhận được câu trả lời có thể giải quyết được vấn đề của bạn chắc là không khó
Nhưng cái bạn nhận được sau topic này là gì? là một đoạn code có thể submit được? what else?