Code tính sin(x) bị sai kết quả

Em mới học C thì gặp trường hợp như thế này:

chương trình của em như sau:

#include<stdio.h>

int main(){
   int i=2, dau=-1;
   double x; scanf("%lf", &x);
   double sum=x, oldsum=0, mau=1, tu=x;
   while(sum-oldsum>0.001){
		oldsum=sum;
		tu=tu*x*x;
		mau=mau*i*(i+1);
		sum=sum+(tu/mau)*dau;
		i=i+2;
		dau=dau*(-1);
   }
   printf("%.4lf", sum);
}

Em không biết phần code e sai chỗ nào. Monng anh/chị giúp ạ, em cảm ơn!

Sao mới vào mà i = 2 rồi?
Nhầm, bạn cho sum = x rồi.

Kết quả ra sai hay bị lặp vô tận, hay lặp chưa đủ mà đã in ra.
Lấy sai số thì dùng trị tuyệt đối.

3 Likes

Đã xử lý xong ạ, em cảm ơn!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?