Chào anh chị. Anh chị cho em hỏi cái bài này em ép kiểu sao nó cứ ra kết quả là 1 vậy ạ?
int main()
{
float s; s=0;
int n;
cin >> n;
for (int i=1; i<=n; i++) s=s+(float)(1/i);
cout << s;
return 0;
}
Chào anh chị. Anh chị cho em hỏi cái bài này em ép kiểu sao nó cứ ra kết quả là 1 vậy ạ?
int main()
{
float s; s=0;
int n;
cin >> n;
for (int i=1; i<=n; i++) s=s+(float)(1/i);
cout << s;
return 0;
}
Vì (1/i) = 1 khi i==1 còn giá trị sau <1 nên float(1/i) =0
Sửa s+=float(1)/i hoặc s+=1.0/i;
dạ em hiểu rồi. Em cám ơn anh ^^
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?