Lỗi không hiển thị kết quả

Đoạn chương trình của mình không ra kết quả, xin hãy cho biết mình đã sai ở đoạn nào:

#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
double k, i, j, z, a, s = 1, n = 100;
printf("nhap x(radian):");
scanf("%lf", &k);
  a = k;
  for (i = 1; i <= n; i++)
  {
   for (i = 1, j = 2 * i + 1; i <= j; j++)
   {
   s *= i;
   }
  z = (pow(-1, i) * pow(k, 2 * i + 1) / s);
  a += z;
   if ( abs(z) >= 1e-5) break;
  }
printf("sin(x) = %lf", a);
getch();
}

Newbie nhưng mk thấy:
Theo mình vòng lặp của bạn lỗi rồi:
vòng lặp của bạn i nó chỉ chỉ bằng 1 được thôi.

2 Likes

bạn có thể nói cho mình biết lí do không bạn?

Bạn nên viết code dùng markdown khi post lên đây để cho dễ nhìn:

Vòng lặp bên trong của bạn:

for (i = 1, j = 2* i + 1; i <= j; j++) {...}

j = 2*i + 1 nên điều kiện i <= j luôn đúng nên vòng lặp chạy đến vô hạn. Chắc vậy.

Góp ý thêm là vòng lặp ngoài dùng i rồi thì vòng lặp trong dùng biến đếm khác cho đỡ gây nhầm lẫn.

2 Likes

Mình cảm ơn bạn đã chỉ bảo cho mình!

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