gpt4 book ai didi

C: 返回正确的值,但分配错误的值:-1.#IND000000000000

转载 作者:行者123 更新时间:2023-11-30 20:55:30 24 4
gpt4 key购买 nike

我在使用双变量类型时遇到问题。 sub函数中,返回值为mid = 1.0306534300317196 。但是当将此值赋给coord[0]时。但是coord[0]=-1.#IND000000000000 。我实在不明白为什么会出错。请帮我清除它。谢谢!

     #include <stdio.h>
double x[11];
double m[11];

double coord[9];

double abs(double a, double b){
if(a>b)
return a-b;
else return b-a;
}
double findCoord(double left, double right) {
double mid = (left + right)/2;
//double oldmid =0;
double f_left = 0;
double f_right = 0;

f_left= f_left + m[0]/((mid-x[0]) * (mid-x[0]));

f_right= f_right + m[1]/((x[1]-mid) * (x[1]-mid));

// check errors of value ?????
if(abs(f_right,f_left)<0.000000001)
return mid;
// check by F
if (f_left==f_right)
return mid;
if (f_left > f_right){
left=mid;
findCoord(left, right);
}
if (f_left < f_right){
right=mid;
findCoord(left, right);
}
}
int main(void)
{
x[0]=1;
x[1]=2;
m[0]=1;
m[1]=1000;

coord[0]=findCoord(x[0], x[1]);


printf("%.10f \n", coord[0]);

while(1);
return 0;//Your program should return 0 on normal termination.
}

最佳答案

你的代码应该使用

return findcoord(left,right);

而不是

findcoord(left,right);

在函数 findcoord 中进行递归调用,否则递归调用函数返回的值将丢失!

关于C: 返回正确的值,但分配错误的值:-1.#IND000000000000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32753702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com