C语言的问题——求e的x次方的近似解!急!

不用你们编,帮我改就行,两个都改!谢了!

#include <stdio.h>
#include <math.h>
void main()
{
int i;
float a,e,x;
printf("请输入x的值: ");
scanf("%d",&x);
e=0;
i=0;
a=1;
while(a>1e-6);
{
a=a*x/i;
e=e+a;
i++;
}
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);
}

急就先第一个:

#include <stdio.h>
#include <math.h>
void main()
{
int i;
int x; //scanf("%d",&x);则x为int型
double a,e; //double更好
double n,s,t; //增加
printf("请输入x的值: ");
scanf("%d",&x);
e=1.0; //修改
i=1; //修改
a=1.0;
while(a>1e-6) //修改;拿去
{
for(n=1,s=1;n<=i;n++) //增加算i!
{
s*=n;
}
for(n=1,t=1;n<=i;n++) //增加算x^i
{
t*=x;
}
a=t/s; //修改( x^i / i! )
e=e+a;
i++;
}
printf("exp(x)=%f\n",exp(x));
printf("循环次数为: %d次, e的x次方为:%f\n",i,e);
}

第二个
//注意x是浮点型的,所以输入带小数,整数部分不要太大
#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,a=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);
}
温馨提示:答案为网友推荐,仅供参考
第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);
}
第3个回答  2010-11-20
给的分不低 但是我的水平不够 哎 帮不上你的忙 我真郁闷啊
相似回答