Сериал, который вы пытаетесь вычислить, кажется неверным. Скорее, это будет сумма, чем продукт, поскольку продукт может быть упрощен до (- x) - (n * (n + 1)) / 2 , который быстро сходится к 0 для x> 1, колеблется между 1 и -1 для x = 1 и расходится для x <1. </p>
Продукт может быть вычислен без каких-либо других локальных переменных:
printf("Requested number is: %f\n", pow(-x, -n * (n + 1) / 2));
Чтобы вычислить сумму вместо произведения, которое представляет собой ряд Тейлора для 1 / (1 + x) , в код необходимо внести некоторые изменения, и он может использовать меньше переменных:
#include <stdio.h>
int main() {
int n;
double x, term, sum;
printf("Input value of x: ");
if (scanf_s("%lf", &x) != 1)
return 1;
printf("Input value of n: ");
if (scanf_s("%d", &n) != 1)
return 1;
sum = term = 1.0;
while (n --> 0)
sum += term /= -x;
printf("Requested number is: %f\n", sum);
return 0;
}