gpt4 book ai didi

c - 我的平方根代码有什么问题?

转载 作者:行者123 更新时间:2023-11-30 21:37:22 25 4
gpt4 key购买 nike

这段代码有什么问题?我同时学习Python和C。类似的代码在 Python 上工作得很好,但我很困惑为什么这在这里不起作用?

#include <stdio.h>

float a, b, c,min_value, max_value;

int main(){
printf("Enter a number here:");
scanf("%f",&a);
b=(max_value+min_value)/2;
while(abs(b*b-a)>0.1){
if (b*b>a){
max_value=b;
b=(max_value+min_value)/2;
}
else if(b*b<a){
min_value=a;
b=(max_value+min_value)/2;
}
printf("the square root of the number is %f",b);
}
}

最佳答案

在 C 中,abs 是一个整数函数 - 向其传递 float 值将导致截断,因此小值 < +/-1.0 将变为 0。需要使用 fabs 来获取浮点值。变化:

while(abs(b*b-a)>0.1){

至:

while(fabs(b*b-a)>0.1){

并添加:

#include <math.h>

靠近源文件顶部。

关于c - 我的平方根代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33832316/

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