#include
<
stdio.h
>
#include < math.h >
#define PI 3.1415926
float a( float x1, int n1) /* control only one data item value */
{
float s1 = 1.0 ,s2 = 1.0 ,s;
int i;
for (i = 1 ; i <= 2 * n1 - 1 ; i ++ )
{
s1 *= x1;
s2 *= i;
}
s = s1 / s2;
if (n1 % 2 == 0 ) return - s;
return s;
}
void main( void )
{
int n = 1 ;
float x, x0, sum = 0.0 ;
printf( " x = " );
scanf( " %f " , & x);
x0 = x * PI / 180.0 ; /* 转化为弧度 */
while (fabs(a(x0, n)) > 0.000001 ) /* 保证精确度 */
{
sum += a(x0, n);
n ++ ;
}
printf( " sin(x) = %f " , sum);
getch();
}
#include < math.h >
#define PI 3.1415926
float a( float x1, int n1) /* control only one data item value */
{
float s1 = 1.0 ,s2 = 1.0 ,s;
int i;
for (i = 1 ; i <= 2 * n1 - 1 ; i ++ )
{
s1 *= x1;
s2 *= i;
}
s = s1 / s2;
if (n1 % 2 == 0 ) return - s;
return s;
}
void main( void )
{
int n = 1 ;
float x, x0, sum = 0.0 ;
printf( " x = " );
scanf( " %f " , & x);
x0 = x * PI / 180.0 ; /* 转化为弧度 */
while (fabs(a(x0, n)) > 0.000001 ) /* 保证精确度 */
{
sum += a(x0, n);
n ++ ;
}
printf( " sin(x) = %f " , sum);
getch();
}
关于这个程序的编写,关键是所用数字的类型。以及求sin(x)时,每一项的数据类型。在结合他人的程序和自己的实践,我选择了float型的数据。其中函数float a(float x1, int n1)表示的是求每一个子项的值。例如:x/1!,x/2!等的值,n为变量,来控制精确度。如下代码(经过win-tc调试通过);