我自己写的C程序,用泰勒公式求e的x次方,0错误0警告,可还是有问题!求助!!!!

JackAyu 2008-03-30 01:25:05
泰勒展开式“e^x=1+(x/1!)+(x^2/2!)+(x^3/3!)+.......”
用这个公式求e的x次方,以下是我写的C程序:

#include<stdio.h>
void main()
{double s,x,t,i;
t=1.0,i=1.0,s=0.0;
printf("请输入x的值:");
scanf("%d",&x);
while(t>=1.0e-6)
{s+=t;
t=x*t/i;
i=i+1.0;
}
printf("answer=%.6f\n",s);
}

0错误0警告,但是运行的时候无论x取什么值,结果都是1,怎么查也查不出毛病。请大家帮我挑挑错,多谢!!!!!
...全文
935 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
judywest 2008-06-09
  • 打赏
  • 举报
回复
呵呵
高手如云啊
向每一个在此页的发帖人学习
JackAyu 2008-03-30
  • 打赏
  • 举报
回复
谢谢大家!可是为什么用%d就算不出呢?如果用%d的话即使x取整数结果还是1
guocai_yao 2008-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 arong1234 的回复:]
C/C++ code

#include <stdio.h>
int main() //main 最好符合规范,返回int
{
double s,x,t,i;
t=1.0,i=1.0,s=0.0;
printf("请输入x的值:");
scanf("%lf",&x); //%d输入整型,你这里应该是lf,输入double
while(t>=1.0e-6)
{
s+=t;
t=x*t/i;
i=i+1.0;
}
printf("answer=%.6f\n",s);
return 0;
}
[/Quote]
学习了
guocai_yao 2008-03-30
  • 打赏
  • 举报
回复

#include<stdio.h>

int main()
{
double s,t,i;
int x;
t=1.0,i=1.0,s=0.0;

printf("\n请输入x的值:");
scanf("%d",&x);
while(x != -1)
{
while(t>=1.0e-6)
{s+=t;
t=x*t/i;
i=i+1.0;
}
printf("answer=%.6f\n",s);
printf("\n请输入x的值:");
scanf("%d",&x);
}
}
//这样好像就可以了
arong1234 2008-03-30
  • 打赏
  • 举报
回复
如果用%d,得到得x很可能就是0,你找不到错误,是因为你没有单步调过吧:)会调试就容易找到错了。
arong1234 2008-03-30
  • 打赏
  • 举报
回复


#include <stdio.h>
int main() //main 最好符合规范,返回int
{
double s,x,t,i;
t=1.0,i=1.0,s=0.0;
printf("请输入x的值:");
scanf("%lf",&x); //%d输入整型,你这里应该是lf,输入double
while(t>=1.0e-6)
{
s+=t;
t=x*t/i;
i=i+1.0;
}
printf("answer=%.6f\n",s);
return 0;
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧