假定变量x,y表示数学式子中的数据,则:(x^2+y^2)/(x-y)的c语言的表达式为?

 我来答
l996822265
2013-10-21
知道答主
回答量:4
采纳率:0%
帮助的人:5577
展开全部
调用数学函数,x的2次方表示为pow(x,2),3次方为pow(x,4);依此类推x的n次方为pow(x,n).y的也一样;不过前面得加上
# include <math.h>
在# include <stdio.h>的下一行加
表达式是(pow(x,2) + pow(y,2))/ (x - y)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
觉远抹捞
2013-10-21 · TA获得超过234个赞
知道小有建树答主
回答量:163
采纳率:100%
帮助的人:132万
展开全部
(x*x+y*y) / (x-y); 这个时候需要注意,一般除法结果都有小数点,一般情况下如果要让精确度提高的话往往携程:(x*x+y*y) *1.0/ (x-y);这样的结果会是一个浮点型数据
追问
答案与问题有什么不同?
追答
比如x和y都是int型,那么x*x+y*y的结果将是int型,x-y为int型,int / int 的结果为int 型,损失了精度,如果最后将该int强制转换成float一样会损失精度。。应该让 int*0.1,使上面的式子的结果自动转换为float型,float/int的结果为float型,这样保留了精度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hong1047
2013-10-21 · 超过18用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:58.2万
展开全部
# include <math.h>
# include <stdio.h>

void foo(int x, int y)
{
    int result;
    if((x-y) != 0) 
        result = (pow(x,2) + pow(y,2))/ (x - y);
    else 
        result = (int)(((unsigned int)-1)>>1);
    printf("%d", result);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2013-10-22 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6332万
展开全部
比较高效的表达式应该是——
double n,x,y;
...
n=x-y;
if(n)
n=x/n*x+y/n*y;
else printf("Error,by 0...");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丶看我会发光
2013-10-21 · TA获得超过100个赞
知道小有建树答主
回答量:102
采纳率:100%
帮助的人:72.3万
展开全部
(x*x + y*y)/ (x-y)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式