Giúp sửa bài về if - else

Ai giúp mình với sao mình nhập chữ cái vào nó không ra goodbye ạ!

#include<stdio.h>
int main()
{
	int a;
	scanf("%d",&a);
	if(a<2)
	printf("hello");
	else
		if(a>10)
		printf("hi");
		else
			printf("goodbye");
	return 0;
}

Thử in ra a ngay sau scanf() xem nó ra gì?

2 Likes


Mình không biết về c++ nhưng mình thử in ra biến a sau khi nhập vô thì thấy khi nhập chữ cái vô nó dứt a = 0 ==> mà 0<2 ==> nó xuất ra hello đúng òi còn gì

2 Likes

Cũng tuỳ compiler, ngày xưa hồi còn xài Turbo CPP thì nhập chữ cái vào nó ra cái giá trị gì gì không biết được, chứ không bằng 0 đâu.

5 Likes

scanf có trả về số tham số đọc được mà :slight_smile:

3 Likes

a là kiểu int, mà bạn đi nhập chữ (kiểu char) vào thì không đọc được a, tức lúc này giá trị của a là vẫn là rác, rồi bạn lại hỏi tại sao nó không vào đúng khối if - else theo ý mình :thinking:

3 Likes

Cam ơn bạn nha :smile:

Oki mình hiểu r thanks bạn :smile:

Ok mình hiểu r thanks nha

Ra vậy, biết thêm được một điều mới, cảm ơn bạn nhiều.

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