30/09/2018, 19:36

Hàm chạy vô tận khi gọi đệ quy

void Nhapdl(int &n) {
	fflush(stdin);
	std::cout << "Nhap n: ";
	std::cin >> n;
	if (n <= 0) {
		std::cout << "SO KHONG HOP LE
";
		Nhapdl(n);
	}

}
Pham Ngoc An viết 21:40 ngày 30/09/2018

Cho mình hỏi là tại sao khi nhập vào là 1 ký tự không phải số thì chương trình chạy vô tận mà không dừng lại để nhập số khác ?

... viết 21:43 ngày 30/09/2018

Nhapdl(n);

Bạn sửa lại thành thế này để biến n nó giảm dần về 0, khi n còn lớn hơn 0 thì khối lệnh trong if còn được thực hiện.

Nhapdl(n-1);
Bài liên quan
0