01/10/2018, 10:24

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?

HK boy viết 12:25 ngày 01/10/2018
  • 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).
Bùi Thế Hùng viết 12:31 ngày 01/10/2018

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

Quốc Tòan viết 12:39 ngày 01/10/2018

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

HK boy viết 12:27 ngày 01/10/2018

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

Quốc Tòan viết 12:25 ngày 01/10/2018
// 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?

HK boy viết 12:32 ngày 01/10/2018

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 =)))

Bùi Thế Hùng viết 12:37 ngày 01/10/2018

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

Quốc Tòan viết 12:27 ngày 01/10/2018

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

HK boy viết 12:31 ngày 01/10/2018

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

if(a>=7 && a<8)

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

Quốc Tòan viết 12:41 ngày 01/10/2018

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

Hung_Bui_The:

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

Bùi Thế Hùng viết 12:26 ngày 01/10/2018

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

Quốc Tòan viết 12:33 ngày 01/10/2018

Em xài Visual Studio 2013 Ultimate

Bùi Thế Hùng viết 12:35 ngày 01/10/2018

Quốc Tòan viết 12:38 ngày 01/10/2018

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

HK boy viết 12:29 ngày 01/10/2018

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

Quốc Tòan viết 12:26 ngày 01/10/2018

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

Quốc Tòan viết 12:30 ngày 01/10/2018

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?

HK boy viết 12:36 ngày 01/10/2018

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”.

Trần Hoàn viết 12:38 ngày 01/10/2018

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);

rogp10 viết 12:32 ngày 01/10/2018

Để xoá bộ nhớ đệm, trước dòng getchar(); bạn thêm dòng fflush(stdin);

Dùng câu này hên xui lắm. Viết thêm câu getchar nữa là xong.

Bài liên quan
0