未检索平方根值
Square root values not being retrieved
我在让我的代码获取变量 number
和 result
的用户输入时遇到问题。代码应该采取的正确方式是:当用户输入一个正值时,代码应该对该值求平方根并显示新值。截至目前,没有错误消息,代码运行良好,只是不是我想要的方式。
在查看输出时,它不获取任何值,也不计算平方根。
我在执行此代码时还需要使用指针(我觉得很奇怪)。指针是我非常陌生的东西,所以我希望在那个部门得到相当多的批评。
我已经尝试阅读一些关于指针和理解 sqrt
的教程,但感觉这些东西的关键部分仍然让我感到困惑。
代码:(由执行数学运算的函数 squareRoot
和处理 input/output 的 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);
如果您没有收到类型不匹配的编译器警告,请提高警告级别。
我在让我的代码获取变量 number
和 result
的用户输入时遇到问题。代码应该采取的正确方式是:当用户输入一个正值时,代码应该对该值求平方根并显示新值。截至目前,没有错误消息,代码运行良好,只是不是我想要的方式。
在查看输出时,它不获取任何值,也不计算平方根。
我在执行此代码时还需要使用指针(我觉得很奇怪)。指针是我非常陌生的东西,所以我希望在那个部门得到相当多的批评。
我已经尝试阅读一些关于指针和理解 sqrt
的教程,但感觉这些东西的关键部分仍然让我感到困惑。
代码:(由执行数学运算的函数 squareRoot
和处理 input/output 的 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);
如果您没有收到类型不匹配的编译器警告,请提高警告级别。