0 k thích
77 đã xem
trong Kiến thức CNPM bởi (240 điểm)

Trong C em có viết một hàm như sau :

double CauA( long N )
{
double KetQua = 0;
    for (int i = 1 ; i <= N ; i++)
   KetQua += (1 / i);
return KetQua;
}
Nếu viết như trên hàm sẽ trả về giá trị 0 , nhưng nếu không khai báo biến KetQua thì không thể dùng lệnh
KetQua += (1 / i);
Cho em hỏi có cách nào khắc phục vấn đề trên không ạ ?
Em xin cảm ơn !
bởi (1.2k điểm)
mà mục đích của bạn trong bài này là làm gì. theo mình thì KetQua return về sẽ bằng 1 chứ .
bởi (240 điểm)
Em đã giải quyết được , em cảm ơn ạ !

1 Câu trả lời

+1 thích
bởi (3.2k điểm)
đã được chọn bởi
 
Hay nhất
Đây là bài tính tổng 1 + 1/2 + 1/3 + ... + 1/n

nếu code như bạn thì kết quả sẽ là 1 vì vòng lặp đầu tiên 1/1 = 1, các vòng lặp sau sẽ cộng thêm 0 vì (1 / i) với i > 1 sẽ bằng 0 vì nó chia nguyên, nếu bạn muốn chia đúng thì phải là (1.0 / i) hoặc ép kiểu (double)1 / i thì cộng dồn mới đúng được.
bởi (240 điểm)
Vâng em cảm ơn ạ !
Chào mừng đến với Q&A FIT. Bạn có thể đặt câu hỏi và nhận được câu trả lời từ các bộ phận hỗ trợ và những thành viên khác tại Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia TP.HCM. Bạn hãy đăng nhập bằng tài khoản Google để gửi hoặc trả lời các câu hỏi.
...