Lỗi tự tắt console debug mặc dù đã getchar()

// ConsoleApplication1.cpp : Defines the entry point for the console application.
//

#include "stdio.h"
#include "stdlib.h"

int main()
{
	float a;
	printf("Nhap vao so diem cua ban: ");
	scanf("%f", &a);
	if (a <= 8)
		printf("Xep loai gioi");
	else if (a <= 7)
		printf("Xep loai kha");
	else if (a <= 6)
		printf("Xep loai trung binh");
	else if (a <= 5)
		printf("Xep loai yeu");
	else
		printf("Rot");
	getchar();
	return 0;
}

Dạ em mới làm bài cơ bản nhưng khi em nhập điểm thì cái debug nó tự tắt dùm em mặc dù đã có getchar rồi?

  • Thêm tag C vào giúp mình. Sửa title cụ thể hơn bạn nhé.
  • Cái điều kiện a <= 8 sai sai nha.
  • #include những thư viện của C thì nên để trong <> như <stdio.h>.
  • Còn vụ debug thì mình chịu. Mình chỉ giúp bạn nhìn ra lỗi sai (để đỡ phải xài debug).

điều kiện của ì chưa đủ

Kh hiểu sao lúc em debug. Em nhập vào điểm là 8 thì nó tự văng ra khỏi cái bảng debug

Còn sao nữa. Điều kiện if của bạn sai chứ đâu :expressionless:

1 Like
// ConsoleApplication1.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <stdlib.h>

int main()
{
	float a;
	printf("Nhap vao so diem cua ban: ");
	scanf("%f", &a);
	if (a >= 8)
		printf("Xep loai gioi");
	else if (a >= 7)
		printf("Xep loai kha");
	else if (a >= 6)
		printf("Xep loai trung binh");
	else if (a >= 5)
		printf("Xep loai yeu");
	else
		printf("Rot");
	getchar();
	return 0;
}

v đúng chưa anh?

Đúng hay không thì bạn phải kiểm tra mới biết được, rất tiếc mình không phải là anh Google thông thái =)))

1 Like

những cái if sâu bạn nên thêm vid dụ như if(a>=7 && a<8), chứ điều kiện của bạn như thế n in ra nhiều dòng lắm

Khi debug thì nó vẫn out ra cái bảng? Khi em nhập điểm là 8

Bạn lạ thật. Nếu như if (a >= 8) không thoả mãn thì khi chạy đến else thì điều kiện đã tự động là a < 8 rồi, cần chi phải viết

cho thừa.
Bạn đọc lại code của thớt hộ mình cái.

Trên bài tập của anh Đạt trên youtube có ghi là:
Nếu điểm >= 8 => Giỏi
Nếu điểm >= 7 => Khá
Nếu điểm >= 6 => Trung Bình
Nếu điểm >= 5 => Yếu

xin lỗi thừa thật .chả biết debung của bạn sao chứ vẫn in ra bt mà

Em xài Visual Studio 2013 Ultimate

Của em nó kh hiện ra nó văng bảng debug ra à

Mình tin là từ nãy đến giờ code của thớt vẫn sai. Trừ khi IDE hỏng debug.

1 Like

Bùi Thế Hùng vẫn đúng ra kìa anh ơi chắc IDE bị hỏng r

Trường em dạy xài Visual Studio nên em tải cái đó. Ngoài ra em có nên xài cái khác không anh?

Cái khác thì không thiếu, quan trọng là bạn tìm được cái nào phù hợp với bản thân.
Bạn thử google “best c++ ide for beginner”.

1 Like

Nguyên nhân không phải là do “văng debug”.

Các chương trình DOS trong thực tế không giống Dev-C++ (loại IDE tối cổ không còn được dùng để sản xuất phần mềm), khi chạy xong là tự động tắt.

Bạn có getchar(), tuy nhiên bạn lại không xoá bộ nhớ đệm, nên getchar() vẫn sẽ nhận giá trị '\n' khi bạn nhấn Enter ở bước nhập dữ liệu, không chờ bạn nhập gì cả. Để xoá bộ nhớ đệm, trước dòng getchar(); bạn thêm dòng fflush(stdin);

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