Точно так же, как указал @Mat, в этой части вашего кода:
for (i=2;i<=n;i+=2)
{
a=pow(n,2)/((n-1)*(n+1));
}
Он снова и снова выполняет одно и то же вычисление, потому что n
не меняет своего значения. Ответ pow(n,2)/((n-1)*(n+1))
остается неизменным даже для всех итераций.
Кроме того, на заметку, какую формулу вы используете для расчета своего ответа? Если вы поставите n = 4
, вы получите значение 16/15, равное 1,0667. Для n = 5
ответ - 1.041667. Они явно не равны pi
. Я думаю, что сама формула может быть неправильной. Вы можете опубликовать вопрос о формуле на MathStackExchange , чтобы получить представление о том, что такое точная формула, а затем реализовать ее в C позже:).
Best.