帮忙作一下这个题(c语言)

来源:百度知道 编辑:UC知道 时间:2024/05/12 10:50:32
main()
{ double e=1.0,x=1.0,y,detax;
int i=1;
printf(“\n please enter a detax:”);
scanf(“%lf”,&detax);
y=1/x;
while(y>=detax)
{
x=x*i;
y=1/x;
e=e+y;
++i;
}
printf(“%12.10lf”,e);
}
⑴ 阅读上面的程序,写出程序所依据的计算公式。
⑵ 当输入的detax各是什么值时,能分别使程序按下面的要求运行:
.不进入循环
.只循环两次
.进入死循环(程序将永远循环下去)。
⑶若把原程序中while语句中的y>=detax,分别换成y>detax,y<detax,观察程序运行将会有什么变化。
⑷ 若把程序中while语句之前的y=1/x语句去掉,观察程序的运行将会发生什么样的变化。
⑸ 若把原程序中的++i换成i++,观察程序的运行是否会发生变化。
⑹ 把原程序中的while结构写成do-while结构。
“不太难的题 ,回答的细致一些 ,拜托了各位”

1.公式1+1+1/2+1/6+/24...+1/n!(n=1,2,3,...)
2.由于y的初值为1所以当输入大于1时就不进入循环。当输入为1时就会循环两次(第一次y为1,第二次y为0.5),当输入为小于等于0时进入死循环。
3.换成y>detax时输入1就不进入循环,换成y<detax时则当输入小于1时就进入循环。当输入为大于1时进入死循环。
4.去掉y=1/x语句后,由于y没有得到初始化所以状态不定。如果输入的detax正好小于y则进入循环,否则就会直接输出1.0000000000
5.无变化
6.
main()
{ double e=1.0,x=1.0,y,detax;
int i=1;
printf(“\n please enter a detax:”);
scanf(“%lf”,&detax);
do{
x=x*i;
y=1/x;
e=e+y;
++i;
}while(y>=detax);
printf(“%12.10lf”,e);
}

这个题还是亲力亲为得好,就是题出得有点变。

既然知道不太难,为什么不自己解决