某电2022期末考试第一场有一道这种题目,听说math函数头文件被ban了(我没考,不知道)这次顺便写下不要头文件的代码。
ps:当作练习就好,出了啥错我也不负责任.
用泰勒展开式求sinx近似值的多项式为:
输入x求sinx的近似值,要求误差不大于0.00001。
输入格式:
直接输入一个实型数据。没有其它任何附加字符。
输出格式:
直接输出保留3位小数的实型结果。
输入样例:
2.5
结尾无空行
输出样例:
0.598
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
double fact(int x);
int main()
{
double x1, x2 = 1, i, factor = 1;
double sum = 0, t = 1;
scanf("%lf", &x1);
for(i=1;t>=0.00001||t<=-0.00001;i+=2){
for(int j=0;j<i;j++){
x2*=x1;
}
t = x2*1.0/fact(i)*factor;
printf("%lf\n", t);
factor *= -1;
sum+=t;
x2 = 1;
}
printf("%lf", sum);
return 0;
}
double fact(int x)
{
double i;
double result = 1;
for(i=x;i!=1;i--){
result *= i;
}
printf("r=%lf\n", result);
return result;
}