I presume you meant
/ fact(2*i+1)
and not
* fact(2*i+1)
if you want a nominal sine series. However, this is a dire method and isn't going to produce anything meaningful in your case, as the different terms are being worked out at different values of x.
First of all, PLEASE USE CODE TAGS. Your code is basically unreadable.
It should be
int main()
A more proactive compiler would prevent your code from running.
The biggest problem of all is that you fall into the trap of so many in trying to sum a power series by working out each term from scratch according to the formula written down on paper.
For example,
pow(1,i+1)
is ridiculous. Just
multiply the previous term by 1.
Similarly, working out afresh
pow(x,2*i+1)
is silly. Just introduce another factor
x * x
to the previous term.
Worst of all is using a factorial function: (a) factorials grow excessively fast; and (b) you would end up repeating a whole shedload of multiplies that you had already done on previous terms. Just divide the previous term by the appropriate new factors.
For the sine series, just
(a) start with i=0, term=x, sum=term.
(b) loop in i, multiplying the previous term by
x*x/(2*i)/(2*i+1.0)
. Add this to the running sum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double Sine( double x )
{
const double tolerance = 1.0e30;
double term = x, sum = term; // first term
double xsq = x * x; // convenience
for ( int i = 1; abs( term ) > tolerance; i++ )
{
term *= xsq / ( 2 * i ) / ( 2 * i + 1); // next term as multiple of previous
sum += term; // add to sum
}
return sum;
}
int main()
{
const double PI = 4.0 * atan( 1.0 );
cout << fixed << setprecision( 6 );
for ( int deg = 0; deg <= 90; deg += 10 )
{
double rad = deg * PI / 180.0;
cout << deg << '\t' << Sine( rad ) << '\t' << sin( rad ) << '\n';
}
}
 