在Ubuntu上的C中的sqrt

时间:2012-08-07 16:43:25

标签: c

我必须编写一个程序,找到用户输入的整数的平方根。但我遇到了一个问题 - 程序不计算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;
}

2 个答案:

答案 0 :(得分:8)

int a;
double b=sqrt(a);
scanf("%i", &a);

您在初始化之前使用变量(a)。 scanf应该在sqrt之前。

答案 1 :(得分:3)

要为已经写好的两个好答案添加一些东西:你需要记住,C中的主要指令序列是线性的 - 首先执行首先写入的指令。如果我们谈论数学,那么可以说'让b为函数 sqrt(a),然后找出b(a)是什么'。你可以通过定义自己的函数在C中实现这一点,但这是其他的东西。注意:计算机没有按照您认为的要求执行操作。它完成了你告诉它的事情。