1、求出e^x某一项小于0.001
源程序代码如下:
/*
2017年6月9日11:07:45
功能:求出e^x某一项小于0.001
*/
#include "stdio.h"
#define M 0.001
double e_Tolyint i, int Num); //声明与定义函数的格式一致,两则仅有一个分号的区别
int main)
{
int count = 1, num;
double sum = 0, temp;
printf"please input a number : ");
scanf"%d",&num);
while1)
{
temp = e_Tolycount, num );
iftemp > M)
{
sum += temp;
count++;
}
else
{
sum += temp;
break;
}
}
printf"请输出求和的最后结果:%f
",sum);
printf"请输出最后一项的值:%lf
",temp);
printf"请输出总共计算了%d 项",count);
printf"
");
return 0;
}
double e_Tolyint i, int Num ) //输入的值,就是表达式中X元素
{
double result = 1 , power = 1; //power是进行幂运算的起始值,如果在一次中调用函数被多次调用,此时double result = 1 , power = 1;这样的定义需注意
ifi == 1)
return result;
else if i > 1)
{
forint j = 1; j < i; j++)
{
result *= j;
power *= Num ;
}
result =power /result;
return result;
}
}
/*
总结:
在VC++6.0中显示的结果:
————————————————————————
please input a number : 3
请输出求和的最后结果:20.085469
请输出最后一项的值:0.000256
请输出总共计算了14 项
————————————————————————
*/
2、求出cosx某一项小于0.001
源程序代码如下:
/* 2017年6月10日06:52:21 cosx的泰勒展开式某一项小于0.001 */ #include "stdio.h" #define M 0.001 double cosx_Tolyint i, double Num); int main) { int count = 1; double input_num; double sum = 0, temp; printf"please input a number: "); scanf"%lf",&input_num); whiletrue) { temp = cosx_Tolycount, input_num); iftemp > M) { ifcount % 2 != 0) { sum += temp; } else { sum -= temp; } count++; } else { ifcount % 2 != 0) { sum += temp; //根据泰勒公式展开奇数项为正,偶数项为负 } else { sum -= temp; } break; } } printf"please output the number of temp: %lf ",temp); printf"please output the number of sum: %lf ",sum); printf"please output the number of count: %d ",count); return 0; } double cosx_Tolyint i, double Num) { int j; double result = 1, power = 1; forj = 1; j <= 2*i-2); j++) //注意此处的是<=,不是< { result *= j; power *= Num; } result = power / result ; return result; } /* 总结: 在vc++6.0中的结果显示: —————————————————————————————— please input a number: 3.14 please output the number of temp: 0.000104 please output the number of sum: -1.000003 please output the number of count: 8 —————————————————————————————— */
3、求出sinx某一项小于0.001
1、源程序代码如下:
/*
2017年6月10日06:24:46
功能:求sinx的某一项小于0.001
*/
#include "stdio.h"
#define M 0.001
double sinx_Tolyint i, double Num);
int main)
{
int count = 1;
double input_num;
double sum = 0, temp;
printf"please input a number:");
scanf"%lf",&input_num);
whiletrue)
{
temp = sinx_Tolycount, input_num);
iftemp > M)
{
ifcount % 2 != 0)
{
sum += temp;
}
else
{
sum -= temp;
}
count++;
}
else
{
ifcount % 2 != 0)
{
sum += temp;
}
else
{
sum -= temp;
}
break;
}
}
printf"please output the number of temp: %lf
",temp);
printf"please output the number of sum: %lf
",sum);
printf"please output the number of count: %d
",count);
return 0;
}
double sinx_Tolyint i, double Num)
{
double power = 1;
int j;
double result = 1;
forj = 1; j <= 2*i-1); j++)
{
power *= Num;
result *= j;
}
result = power / result;
return result;
}
/*
总结:
在vc++6.0中显示的结果为:
——————————————————————————————————
please input a number:3
please output the number of temp: 0.000256
please output the number of sum: 0.141131
please output the number of count: 7
——————————————————————————————————
*/
2、源程序代码如下:
/*
2017年3月16日09:08:58
功能:求sinx)的最后一项的绝对值小于10^-5),并统计项数。
*/
#include<stdio.h>
#include<math.h>
#define M 0.000001
void main)
{
int x, i, k, m = -1, count = -1;
double j, result = 0;
printf"please input the number x = ");
scanf"%d",&x);
fori = 1;fabsj) >= M;i += 2)
{
j = 1;
m=-m; //控制多项式符号的
fork = 1; k <= i; k++) //这是算阶乘的
j *= k;
j = m*powx,i)/j; //这是计算单个多项式的结果的
count++;
result += j; //累加多个多项式
}
printf"count= %d
",count); //累计项数的次数
printf"sinx)= %lf
",result); //测试结果的,调用的 sinx)函数
}
/*
总结:
在VC++6.0中显示的结果:
—————————————————————————
please input the number x = 3
count= 8
sinx)= 0.141120
—————————————————————————
*/
4、求出1+x)^m某一项小于0.001
源程序代码如下:
/*
2017年6月10日08:01:06
功能:求1+x)^m的某一项小于0.001
*/
#include "stdio.h"
#define M 0.001
double M_Tolyint i, double Num, int m);
int main)
{
int count = 1, n;
double input_num;
double sum = 0, temp;
printf"please input a number:");
scanf"%lf",&input_num);
printf"please input a power_number:");
scanf"%d",&n);
whiletrue)
{
temp = M_Tolycount, input_num, n);
iftemp > M)
{
sum += temp;
count++;
}
else
{
sum += temp;
break;
}
}
printf"please output the number of temp: %lf
",temp);
printf"please output the number of sum: %lf
",sum);
printf"please output the number of count: %d
",count);
return 0;
}
double M_Tolyint i, double Num, int m)
{
double power = 1;
int j, m_num = 1;
double result = 1;
ifi == 1)
return result;
else ifi >1)
{
forj = 1; j < i; j++)
{
result *= j;
m_num *= m-j+1);
power *= Num;
}
}
result =power * m_num)/ result;
return result;
}
/*
总结:
在vc++6.0中显示的结果为:
——————————————————————————————————
please input a number:2
please input a power_number:3
please output the number of temp: 0.000000
please output the number of sum: 27.000000
please output the number of count: 5
——————————————————————————————————
*/
5、求出ln1+x)某一项小于0.001
源程序代码如下:
/*
2017年6月10日09:11:06
功能:求ln1+x)的某一项小于0.001
*/
#include "stdio.h"
#define M 0.001
double ln_Tolyint i, double Num);
int main)
{
int count = 1;
double input_num;
double sum = 0, temp;
printf"please input a number:");
scanf"%lf",&input_num);
whiletrue)
{
temp = ln_Tolycount, input_num);
iftemp > M)
{
ifcount % 2 != 0)
{
sum += temp;
}
else
{
sum -= temp;
}
count++;
}
else
{
ifcount % 2 != 0)
{
sum += temp; //根据泰勒公式展开奇数项为正,偶数项为负
}
else
{
sum -= temp;
}
break;
}
}
printf"please output the number of temp: %lf
",temp);
printf"please output the number of sum: %lf
",sum);
printf"please output the number of count: %d
",count);
return 0;
}
double ln_Tolyint i, double Num)
{
double power = 1;
int j;
double result = 1;
forj = 1; j <= i; j++)
{
power *= Num;
}
result =power / j;
return result;
}
/*
总结:
在vc++6.0中显示的结果为:
——————————————————————————————————
please input a number:0.5
please output the number of temp: 0.000977
please output the number of sum: 0.189369
please output the number of count: 7
——————————————————————————————————
*/
