01/10/2018, 11:50
Thắc mắc về bài tập lập trình C
Chào mn, e mới bắt đầu học lập trình C và đang làm mấy bài tập C cơ bản. E có thắc mắc về BT này: Xác định góc phần tư thứ mấy trên đường tròn lượng giác
source code:
int main()
{
printf("XAC DINH GOC PHAN TU THU MAY TREN DUONG TRON LUONG GIAC
");
int angle,k;
printf("Nhap vao so do goc(0 <= x < 360*k): ");
scanf("%d", &angle);
k = angle / 360;
if (360*k <= angle < 90 + 360*k)
printf("Goc %d do thuoc goc phan tu thu nhat
", angle);
else if (angle <= 180 + 360*k)
printf("Goc %d do thuoc goc phan tu thu hai
", angle);
else if (angle <= 270 + 360*k)
printf("Goc %d do thuoc goc phan tu thu ba
", angle);
else if (angle <= 360*k)
printf("Goc %d do thuoc goc phan tu thu tu
", angle);
else
printf("so do goc khong hop le
");
return 0;
}
Tại sao khi điều kiện trong if (360*k <= angle < 90 + 360*k)
thì chương trình lại chạy sai còn khi
if (360*k <= angle && angle < 90 + 360*k)
thì nó lại chạy đúng?
Bài liên quan
Đầu tiên là vì sao phải tính k hay là bạn chép vào thôi?
Do điều kiện trả về 0 hay 1 nên biểu thức đk lớn trở thành 0 < 90 + 360*k và theo đk đề bài là luôn đúng.
C không hiểu cách viết dãy so sánh giống như ngôn ngữ tự nhiên như thế này
Thế thôi.
angle < 90 + 360 * k
nếu đúng thì trả về 1, nếu sai thì trả về 0Như vậy bước tiếp theo sẽ là so sánh
360 * k <= 1
hoặc360 * k <= 0
Hoặc cũng có thể là theo thứ tự từ trái sang phải, so sánh 1 hoặc 0
< 90 + 360 * k