第1个回答 推荐于2018-04-30
#include <stdio.h>
#include <math.h>
void main()
{
int i;
float a,e,x;
printf("请输入x的值: ");
scanf("%f",&x); /*浮点型,应当用%f*/
e=1; /*第一项是0的阶乘,为了编程方便,这里直接给出第一项的值*/
i=0;
a=1;
while(a>1e-6) /*这个不应当有分号*/
{
i++;
a=a*x/i; /*这一项应当是x^i/i!*/
e=e+a;
}
printf("exp(x)=%f\n",exp(x));
printf("循环次数为: %d次, e的x次方为:%f\n",i,e);
}
二题:
#include <stdio.h>
#include <math.h>
void main()
{
int i,j,n=0; /*f是计算阶乘的,建议用浮点*/
float a,e,x,f;
printf("请输入x的值: ");
scanf("%f",&x);
e=1;
i=1;
a=1;
f=1;
while(a/f>1e-6)
{
for(a=1,f=1,j=1;j<=i;j++) /*这里的a也要初始化到1*/
{
f=f*j;
a=a*x;
n++;
}
e=e+a/f;
i++;
}
printf("exp(x)=%f\n",exp(x));
printf("循环次数为: %d次, e的x次方为:%f\n",n,e);
}本回答被提问者和网友采纳
第2个回答 2010-12-02
#include <stdio.h>
#include <math.h>
void main()
{
int i;
float a,e,x;
printf("请输入x的值: ");
scanf("%f",&x);
e=1;
i=0;
a=1;
while (a>1e-6)
{
i++;
a=a*x/i;
e+=a;
}
printf("exp(x)=%f\n",exp(x));
printf("循环次数为: %d次, e的x次方为:%f\n",i,e);
}
#include <stdio.h>
#include <math.h>
void main()
{
int i,j,f,n=0;
float a,e,x;
printf("请输入x的值: ");
scanf("%f",&x);
e=1;
i=1;
a=1;
f=1;
while(a/f>1e-6)
{
for(f=1,j=1;j<=i;j++)
{
f=f*j;
a=a*x;
}
n++;
e=e+a/f;
i++;
}
printf("exp(x)=%f\n",exp(x));
printf("循环次数为: %d次, e的x次方为:%f\n",n,e);
}