Tại sao cộng thêm 3/4 thì kết quả tính sai?

#include <stdio.h>

float F( int x)
{
    if( x==0)
    {
        return 1;
    }
    else
    {
        return (2*F(x-1) + 3 );
    }
}

int main()
{
    int x;

    printf("Enter x: ");
    scanf("%d",&x);

    printf("KQ= %f", F(x));

    return 0;
}

nếu thay ở chỗ +3 thành +3/4 thì lại không ra đáp án như mình mong muốn. Mong mn giúp em với ạ

3/4 = 0. Cả 2 đều là số nguyên mà, sau khi chia sẽ lấy phần nguyên 0.75 => 0.
Cách giải quyết là:

  • Ghi luôn 0.75.
  • Ghi 1 số là kiểu float: 3.0/4.
4 Likes

Vâng ạ. Em cảm ơ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?