我必须编写一个程序,找到用户输入的整数的平方根。但我遇到了一个问题 - 程序不计算sqrt。我在互联网上搜索问题,阅读所有解决方案,但他们没有帮助我。在这个论坛上有很多关于这个主题的问题,但是那里描述的解决方案对我没用。
实际上,当用户输入整数时,sqrt
函数不起作用。当我设置一个值时,它完美地运行。换句话说,它找到一个常数的sqrt,但不是变量。
我用这段代码编译它(就像所有地方一样)gcc -o sqrt -lm sqrt.c
我正在研究Ubuntu。
这是代码:
#include<stdio.h>
#include<math.h>
main()
{
int a;
double b=sqrt(a);
scanf("%i", &a);
printf("sqrt of integer is %lf", b);
getchar();
getchar();
return 0;
}
答案 0 :(得分:8)
int a; double b=sqrt(a); scanf("%i", &a);
您在初始化之前使用变量(a
)。 scanf
应该在sqrt
之前。
答案 1 :(得分:3)
要为已经写好的两个好答案添加一些东西:你需要记住,C中的主要指令序列是线性的 - 首先执行首先写入的指令。如果我们谈论数学,那么可以说'让b为函数 sqrt(a),然后找出b(a)是什么'。你可以通过定义自己的函数在C中实现这一点,但这是其他的东西。注意:计算机没有按照您认为的要求执行操作。它完成了你告诉它的事情。