Cùng đặt vấn đề nào

Mình có một câu hỏi muốn hỏi các bạn là trong đoạn chương trình sau sẽ in ra cái gì???
What will be printed?

unsigned char c;
int main (){
for (c = 0; c < 999; c++) printf ("%d",c);
}

2 Likes

Sẽ in ra c từ 0 tới 255 và lặp lại vô tận :smile:

Làm ơn cho lời giải thích anh Đạt à :blush:

Vì nó bị tràn số, khi dùng unsigned char thì biến đó sẽ chứa 0 tới 255. Khi vượt qua 255 thì biến đó quay trở về 0. Đó gọi là hiện tượng tràn số. Trong bài này anh có nói về vấn đề này.

Một vấn đề hay đấy :smile:

3 Likes

Thanks anh nhiều, em cũng chưa có xem mấy cái clip về C của anh. Thôi giờ xem đã !!

1 Like

Có nhiều vấn đề anh chưa đề cập trong videos của anh lắm. Em đưa thêm nhiều vấn đề tương tự nữa nhé. Trong diễn đàn cũng có 1 số bài kiểm tra kiến thức C. Em dạo dạo một vòng xem thử ntn?

1 Like

Uầy vấn đề phát sinh nữa là tại sao nó lại lặp vô tận. Em thử tìm hiều nhưng vẫn chưa có câu trả lời anh à.

1 Like

Nó lặp vô tận vì điều kiện đầu vào là c phải lớn hơn 999 mới thoát khỏi vòng lặp. Nhưng c cứ lẩn quẩn từ 0-255 thì làm sao mà lớn hơn 999 được. Nên nó cứ lặp hoài.

1 Like

Thế mà mình không nghĩ ra

1 Like

Đặt nhiều vấn đề như thế này nữa đi, rồi sẽ vỡ ra nhiều thứ hehe. Mà anh cũng có thêm kinh nghiệm :heart_eyes:

Oke, anh chuẩn bị tiếp bão vấn đề của em

1 Like

Bão to :smiley: Tiếp tiếp nữa đi, làm chưa đã. Post thêm tối về anh làm tiếp.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?