30/09/2018, 21:10
Gặp lỗi trong bài tập Đệ Quy?
Em có làm 1 bài tập trong C về Recursion như sau:
Dưới đây là phần code làm bài của mình nhưng không hiểu sao khi chạy, nhập cái gì thì đáp án nó cũng cho ra là 0
int TinhTong(int m)
{
if (m == 1)
return 1;
return m + TinhTong(m - 1);
}
float TinhTongPhanSo(int n)
{
if (n == 1)
return 1;
return (float)1/TinhTong(n) + TinhTongPhanSo(n - 1);
}
int main()
{
int n;
printf("Nhap vao so: ");
while ((scanf("%d", &n)) != EOF)
{
printf("
Ketqua: %.3f
", TinhTong(n));
printf("
Nhap vao so: ");
}
getch();
return 0;
}
Mọi người giúp mình nhé. Xin cảm ơn !
Bài liên quan
Cái hàm tính tổng phân số sao không thấy gọi ???
Chỗ này trả về kiểu
int
sao lại dùng định dạng%f
Định dạng in ra sai so với kiểu dữ liệu nên giá trị in ra sẽ bị sai.
Không phải Cái đó mình gọi nhầm hàm
TinhTongPhanSo(n)
thànhTinhTong(n)
Đáng lẽ thế này mới đúng:
printf("\nKetqua: %.3f\n", TinhTongPhanSo(n));