未检索平方根值

问题描述 投票:1回答:1

我在获取代码以获取变量numberresult的用户输入时遇到问题。代码应采取的正确方式是:当用户输入一个正值时,代码应将该值取平方并显示新值。截至目前,还没有错误消息,代码可以正常运行,只是不是我想要的那样。

[在查看输出时,它不会获取任何值,也不是平方根运算。

我在执行此代码时也需要使用指针(奇怪的imo)。指针对我来说是非常新的东西,因此我希望对该部门提出足够的批评。

我已经尝试阅读一些有关指针和sqrt的理解的教程,但是感觉这些内容的关键部分仍然让我感到困惑。

代码:(由进行数学运算的函数squareRoot和处理输入/输出的main组成]

#include <stdio.h>
#include <math.h> //needed for sqrt()
#define POSITIVE 1 //not used atm
#define NEGATIVE 0 //not used atm

float squareRoot(float number, float * result) {

    return * result = sqrt(number); //calculate the square root of a number

}


int main() {

    float number = 0;
    float * result = malloc(sizeof(float));

        printf("Enter a float value: ");
        scanf("%f", &number);
        squareRoot(number, result);

    if (number < 0) {
        printf("Square root of a negative value is not possible.");
    }

    if (number > 0) {
        printf("Square root if %.2f is: %.2f "), number, result;
    }
 return 0;
}

非常感谢任何帮助或建设性的批评!

c pointers square-root
1个回答
2
投票

result是一个指针,您需要取消引用它。

printf("Square root if %.2f is: %.2f ", number, *result);

如果未收到类型不匹配的编译器警告,请提高警告级别。

© www.soinside.com 2019 - 2024. All rights reserved.