là debug phải không bạn ?
Nhờ giúp đỡ vấn đề trong chương trình người treo cổ viết bằng C
Hi Hoài Nam Trương.
Không là BẮT BỌ
nghĩa là sao bạn ? bắt bọ nghĩa là gì .
ths bác, bác trên nói bắt bọ làm mình cứ tưởng là gì không
Hi Hoài Nam Trương.
là BẮT BỌ
- Code đặt tên Anh Việt lẫn lộn.
- Đặt tên theo kiểu lạc đà + rắn.
- Thụt thụt thò thò không có hàng lối gì cả.
- so_ky_tu_bi_mat = malloc(do_dai_tu*sizeof(int)); // Số ký tự sao lại là một mảng nhỉ ?
- Cái if thì có ngoặc cái thì không.
if(so_ky_tu_bi_mat[i]) //nếu người chơi tìm thấy ký tự i
printf("%c",ky_tu_bi_mat[i]); // hiển thị ký tự
else
printf("*");
if(!kiem_tra_ky_tu(ky_tu,ky_tu_bi_mat,so_ky_tu_bi_mat))
{
so_lan_doan--;
}
Cái này là rộng hơn bắt bọ rồi. Nói đúng hơn, đây là vấn đề phẫu thuật thẩm mỹ code.
Mình cũng đến “Muốn treo cổ” luôn rồi. Code mình cũng không khác gì của bạn. Nhưng chữ cái mà mình đoán đầu tiên nó luôn luôn sai dù là chữ đó có trong từ bí mật, khi đoán chữ đó lần thứ hai thì nó mới được. Của mình bị vấn đề là lần đoán đầu tiên nó luôn luôn sai, kể từ lần đoán thứ hai thì tất cả bình thường. Vậy có bạn nào chỉ cho mình với…!!
Up code lên bạn ơi. Bạn cứ nói thế này suông thì không ai biết bạn sai ở đâu cả.
giống y chang trên kia luôn, khác mỗi cách đặt tên biến số thoi
Bạn up cả đống code thế này, thực sự mình sống không nổi
Thiếu &
Vòng for sai 1 điều kiện, phải là < doDaiTuBM
. Và không chỉ có 1 chỗ sai như thế này:
Nếu đây là dòng bạn khởi tạo từ bí mật thì hãy đưa nó ra ngoài vòng while do.
Mình chịu code của bạn thôi.
Rất cảm ơn ý kiến của bạn!
scanf("%s",&datTuBM);
nếu thêm &
thì có lỗi ngay tại bước đó.
Hai ý của bạn về khai báo và vòng lặp for
thì đúng rồi
Nhưng vấn đề của mình như đã nói ngay từ đầu thì vẫn chưa thể giải quyết được.
Bạn hãy xem
Che do choi 1 nguoi hay 2 nguoi?
2
Nguoi choi thu nhat hay dat tu bi mat...
nguyen
Nguoi choi thu hai hay giai tu bi mat...
Ban co 10 luot doan de choi
Tu bi mat la gi? Hay chon tu ******---------e
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu ******---------e
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu ****E*---------n
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu N***EN---------g
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu NG**EN---------u
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu NGU*EN---------yyy
Ban da chien thang NGUYEN
Co choi lai phan nay 0?
1
Nguoi choi thu nhat hay dat tu bi mat...
nhh
Nguoi choi thu hai hay giai tu bi mat...
Ban co 10 luot doan de choi
Tu bi mat la gi? Hay chon tu ***---------f
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu ***---------h
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu *HH---------n
Ban da chien thang NHHY
Co choi lai phan nay 0?
0
Chon 0 de ket thuc/ Choi tiep chon so bat ki..2
Che do choi 1 nguoi hay 2 nguoi?
1
Ban co 10 luot doan de choi
Tu bi mat la gi? Hay chon tu ***********---------i
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu ***********---------i
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu I*******I**---------n
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu IN******I*N---------t
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu IN*T***TI*N---------r
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu IN*TR**TI*N---------u
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu IN*TRU*TI*N---------c
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu IN*TRUCTI*N---------s
Ban co 9 luot doan de choi
Tu bi mat la gi? Hay chon tu INSTRUCTI*N---------o
Ban da chien thang INSTRUCTION
Co choi lai phan nay 0?
1
Ban co 10 luot doan de choi
Tu bi mat la gi? Hay chon tu ********---------
scanf không có & mới là có lỗi. Còn có mà sinh lỗi thì do datTuBM của bạn không phải là string.
Ok rồi. Dòng 77 của bạn chỉ bị warning thôi. Bạn có thể google để xem kĩ hơn nguyên nhân tại sao bị warning.
Ủa dòng 77 phải bỏ dấu & đi khi scanf chứ nhỉ?
scanf mà bỏ & thì gọi éo gì là scanf nữa @@
warning ở kiểu dữ liệu (argument 2) cơ mà :v
theo em nhớ nếu như char kiểu đó thì & là char, còn không có & là char *. Tại nếu mà & là nó chỉ nạp vô cái chữ cái đầu tiên thôi, còn bỏ là nạp hết, đây là %s
Anh viết code C có & này:
À, lúc khai báo char datTuBM[100]={0};
nên ở scanf("%s",&datTuBM);
mới báo lỗi, kia là sửa lại rồi…hii!