gpt4 book ai didi

c - 我在方程式中输入一个 double 整数,但一直得到 0

转载 作者:太空狗 更新时间:2023-10-29 16:05:09 25 4
gpt4 key购买 nike

我是 C 编程的新手,遇到了一些小问题。

我将 0.05 作为双 float 输入,并通过解决方案图片中给出的公式运行它以获得答案 0.06242。但是,无论我输入什么,我都会得到 0.000000。有人可以向我解释我的代码是否有问题,或者可以解释我是否在 scanf 和 printf 中正确使用了“%lf”?谢谢。

Solution to my problem

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main(){
double guess, pow1,pow2,pow3, estimate;
printf("Type in an initial guess of the root(for this case type 0.05): ");
scanf("%lf", &guess);

printf("Calculating the root estimate using formula from solution...\n");
pow1 = pow(guess, 3);
pow2 = 0.165*pow(guess, 2);
pow3 = 3*pow(guess, 2);

estimate = guess - ((pow1 - pow2 + 0.0003993) / (pow3 - 0.33*guess));
printf("Estimate = %lf\n", estimate);
}

最佳答案

main() 而不是 int main (void) 的存在意味着您正在使用称为 C90 的古老 C 版本,而不是使用标准 C,因为main() 只会在古老的 C90 中干净地编译。

C90 不支持 printf%lf 除了作为编译器扩展。它只支持所有浮点类型的 %f。这可以解释为什么你会得到奇怪的输出。参见 Correct format specifier for double in printf .

通过获取更新的编译器和学习 C 的更新源来解决这个问题。

关于c - 我在方程式中输入一个 double 整数,但一直得到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57918353/

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