c语言问题 #include <stdio.h> #include <math.h> main() {

#include<stdio.h>#include<math.h>main(){floatx,y,z;scanf("%f%f",&x,&y);z=x/y;while(1)... #include <stdio.h>
#include <math.h>
main() {
float x,y,z;
scanf("%f%f ",&x,&y);
z=x/y;
while(1) {
if (fabs(z)>1.0)
{x=y;y=z;z=x/y;}
else break;
}
printf("%f\n",y);
}
解释一下步骤
展开
 我来答
帽子狗
2014-01-15 · TA获得超过942个赞
知道小有建树答主
回答量:611
采纳率:50%
帮助的人:543万
展开全部
首先定义了3个小数x,y,z
要求输入x,y的值
然后把x/y的值赋给z
下面就是一个while循环 括号里的1表示一直循环
然后下面判断z的绝对值是否大于1
大于1的话就执行这步{x=y;y=z;z=x/y;}
否则就跳出循环
最后输出y
追问
没有突出重点,
if (fabs(z)>1.0){x=y;y=z;z=x/y;}是什么,还有fabs函数的功能。
输入3.6 2.4得到1.600000为什么
追答
噢 这里啊
abs是求绝对值
fabs就是求小数的绝对值
x=y;y=z;z=x/y;
这3行貌似什么特殊的数学意义
一起算算吧
x=3.6 y=2.4 z=3.6/2.4=1.5
然后fabs(z)=1.5>1
x=y,x=2.4
y=z,y=1.5
z=x/y=2.4/1.5=1.6
fabs(z)=1.6>1
继续循环
x=y,x=1.5
y=z,y=1.6
z=x/y=1.5/1.6=0.9375
fabs(z)=0.9375
输出y=1.600000
就是这样
这个 有题目么? 它的数学意义还真看不出来
奇格斋池
2020-06-26 · TA获得超过3773个赞
知道大有可为答主
回答量:3085
采纳率:28%
帮助的人:183万
展开全部
既然你后面有计算p1~p5的表达式,那你还输入作什么?如果是为了初始化,直接赋值不是更快么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式