FreeAngeles
2014.05.22
采纳率:45% 等级:15
已帮助:8100人
#include
//不懂的可以问我
double fact( unsigned int n )
{
return 1 == n ? 1 : n * fact( n - 1 );
}
double pow( unsigned int x, unsigned int n )
{
return 0 == n ? 1 : 1 == n ? x : x * pow( x, n - 1 );
}
int main()
{
int x = 0;
int n = 0;
printf( "请输入x和n:" );
while( true )
{
scanf( "%d%d", &x, &n );
if( x < 0 || n < 0 )
{
printf( "输入错误请重新输入x和n!\n" );
continue;
}
break;
}
double ret = .0f;
int Sign = 1;
for( unsigned int i = 1; i <= n; ++i )
{
ret += pow( x, i ) / fact( i ) * Sign;
printf( "%d^%d/%d!", x, i, i );
if( i < n )
{
printf( "\n%s\n", Sign > 0 ?"+":"-" );
Sign = -Sign;
}
else
{
printf( "\n结果为:%f\n", ret );
}
}
return 0;
}追答:不好意思
if( i 0 ?"+":"-" );
Sign = -Sign;
}
改成
if( i 0 ?"+":"-" );
}
只是显示有问题,结果是对的
追答:Sign = -Sign;
放到
printf( "\n%s\n", Sign > 0 ?"+":"-" );
前面
00分享举报