不知道题目的目的是考读写格式还是计算。假定是计算,程序如下:
#include
#include
#include
double funcos(double e,double x){
double sum=1.0,term=1;
int i2=0,x2;
while(1){
term= (-1) * term*x/(i2+1) *x /(i2+2);
sum=sum+term;
i2=i2+2;
if (fabs(term) < e) break;
}
return sum;
}
main(){
double e,x,v;
printf("input e: ");
scanf("%lf",&e);
printf("ninput x: ");
scanf("%lf",&x);
v = funcos(e,x);
printf("ncos(x)=%.3lfn",v);
return 0;
}
========
如果是考输入
e: 0.001x: 1
的读语句,那么上面程序修改一下:
printf("inputne: 0.001x: 1n");
scanf("e: %lf x:%lf",&e,&x);
要考输出花样,更简单,你自己能写,就不多说了。
#include
#include
double funcos(double x,double e);
int main(void)
{
double n,x,e;
scanf("e: %lf%*c",&e);
scanf("x: %lf%*c",&x);
n=funcos(x,e);
printf("cos(x)=%.3lf",n);
return 0;
}
double funcos(double x,double e){
int i,k,flag=1;
double sum,result=0,fact=1;
for(i=0;;i+=2){
sum=x ;
fact=1;
for(k=1;k<=i;k++)
{
sum *=x ;
fact=fact*k;
}
sum/=fact;
result=result+flag*sum;
if(sum break; flag=-flag; } return result; } #include using namespace std; double funCos(double e, float x) { int i, m, n, p; i = 2; m = x; n = 1; p = -1; double s = 1.0, sum; sum = 1; while (s >e) { m = 1; for (int j = 1; j { m = m*x; } n = 1; for (int k = 1; k { n = n*k; } sum = sum + p*(m / n); s = (m / n); p = p*(-1); i = i + 2; } return sum; } void main() { double e, t; int x; cout cin >>x >>e; t = funCos(e, x); cout } //利用公式e=1+1/1!+1/2!+...+1/n! #include "iostream" using namespace std; double fact(int n) { double sum=1.0; int i; for(i=1;i<=n;i++) sum*=i; return sum; } int main() { double e=0,f,item=1; int i; cout<<;"请输入精度:"; cin>>f; for(i=0;;i++) { item=1/fact(i); e+=item; if(item break; } cout<<"e="< }C语言编程逻辑问题
c编写程序用公式计算e的近似值。直到最后一项小于输入的精度