我在获取代码以获取变量number
和result
的用户输入时遇到问题。代码应采取的正确方式是:当用户输入一个正值时,代码应将该值取平方并显示新值。截至目前,还没有错误消息,代码可以正常运行,只是不是我想要的那样。
[在查看输出时,它不会获取任何值,也不是平方根运算。
我在执行此代码时也需要使用指针(奇怪的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;
}
非常感谢任何帮助或建设性的批评!
result
是一个指针,您需要取消引用它。
printf("Square root if %.2f is: %.2f ", number, *result);
如果未收到类型不匹配的编译器警告,请提高警告级别。