公式:
1.利用函数递归计算阶乘及x的次幂值
2.sinx函数中j做公式中的符号标记
3.做题过程中遇到的基础性问题
abs()函数——整型用abs(),浮点型用fabs()
break与continue的区别:break跳出当前循环,continue跳过本次循环
printf()函数中%1f、%.1f:前者小数点后保留6位,后者保留1位
代码块:
#include <stdio.h>
#include <stdlib.h>
int main()
{
double x;
printf("Input x:\n");
scanf("%lf",&x);
sinx(x);
return 0;
}
double fact(double x){
if(x==1){
return 1;
}else{
return x*fact(x-1);
}
}
double Mypow(double x,double n){
double ret;
if(n == 0){
return 1;
}else{
ret = x * Mypow(x, n-1);
return ret;
}
}
void sinx(double x){
double i,j=-1,sinx,element;
int count;
for(i=1;;i+=2){
j*=-1;
element = j*Mypow(x,i)/fact(i);
count++;
sinx+=element;
if(fabs(element) < 1e-5){
break;
}
}
printf("sin(x)=%.3f,count=%d\n",sinx,count);
}
|