Chuyển đổi nhiệt độ F sang nhiệt độ C

  #include<stdio.h>
   int main()
   {
     float F;
     scanf("%f", &F);
     printf("Gia tri cua nhiet do C: %f ", (F-32)*5/9);  
   }

Các bác em cho hỏi, theo như lý thuyết em đọc thì khi dùng toán tử “/” thì số nguyên chia cho số nguyên, kết quả sẽ lấy phần nguyên. Nhưng sao trong đoạn code phía trên mặc dùng em không ép kiểu “(float)5/9” nhưng “5/9” nó vẫn cho ra kết quả là số thực vậy ạ. Em cảm ơn.

F trong trường hợp này là float.

Nhưng nếu viết như sau thì bất luận F là số nguyên hay thực cũng đều ra kết quả sai :slight_smile:
(F-32)*(5/9)

4 Likes

Có nghĩa là do F là số thực nên dù F nhân, chia, cộng hay trừ với bất kì một số nguyên nào thì kết quả cũng cho ra giá trị số thực. Nếu để (5/9) nó sẽ ưu tiên tính trong ngoặc: Nguyên chia Nguyên => Dẫn đến kết quả sai. Đúng vậy không ạ?

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