#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
float s3=1, s4=0,i=1;
printf("n=");
scanf("%d",&n);
do
{
s3=(float)(s3*((2i-1)/(2i)));
i++;
}while(i<=n);
printf("%f",s3);
return 0;
}
Tạo sao nó tính tổng cứ ra bằng 1 thế ạ?
Thấy nó cứ sai sai 
2 Likes
s3=1/2*3/4*...*(2n-1)/2n
Do ép kiểu (về float) không đúng chỗ.
1 Like
- Nên tách biến ra cho nó dễ
- Vòng lặp xác định thì for đi đừng do/while
#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
float s3 = 1.0f;
printf("n = ");
scanf("%d",&n);
for (int i = 1; i <= n; i++)
{
float tu = (2*i) - 1;
float mau = 2*i;
float result = tu / mau;
s3 = s3 * result;
};
printf("%f",s3);
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?