gpt4 book ai didi

c - 维基百科中计算数字的 n 次方根的算法

转载 作者:行者123 更新时间:2023-11-30 15:19:36 26 4
gpt4 key购买 nike

下面这段代码有什么问题吗?我正在尝试编写一个程序来计算一个数字的 n 次方根,但是我正在编写的计算的输出始终返回为 0。我只是将数字放入其中,看看是否会得到计算结果将其分配给 ans2,但只分配了 0。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void main(){

int n = 2;
double A = 4.0, ans = 1.0, ans2 = 1.0, pow = 1.0;

ans2 = (1/n)*((n-1)*ans+(A/pow));

printf("\n%lf\n", ans2);
printf("\n%lf\n", ans);
printf("\n%lf\n", pow);
printf("\n%lf\n", A);
printf("\n%d\n", n);
}

最佳答案

您必须:

  1. ans2 方程写为 ans2 = (1.0/n)*((n-1.0)*ans+(A/pow));
  2. n 声明为 double 型。

按照您编写的方式,编译器会将 1/n 解释为有符号整数。在整数形式中,1 只是:

00000000000000000000000000000001

因此,当您将其除以任何正整数 n > 1 时,它会将最低有效位从末尾右移,导致结果被截断为 0。

关于c - 维基百科中计算数字的 n 次方根的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30563444/

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