sqrt()是一个常用函数,功能是求给定值的平方根
所属头文件:
#include<math.h>
示例代码:
#include <stdio.h>
#include<math.h>
int main()
{
int n = 0;
n = sqrt(36);
printf("%d", n);
return 0;
}
编译示例出现报错,这是由于sqrt()与参数不匹配造成的。
sqrt()参数列表:
sqrt(double_X)
sqrt(float_X)
sqrt(long double_X)
而示例中的36的类型是int,与sqrt()参数类型不匹配。
正确写法:
int main()
{
int n = 0;
n = sqrt(1.0*36);
printf("%d", n);
return 0;
}
通过1.0*给定值方式将给定值的类型由整型强制转化为浮点型。(sqrt()的返回值也是浮点型,n是整型,可能会丢失一些值。)
要注意的是某些朋友运行示例代码时也不会出现报错的情况是因为编译器自动转化了。
运用实例:
#include <stdio.h>
#include<math.h>
int is_prime(int n)
{
int b = 0;
for (b = 2; b <= sqrt(n); b++)
{
if (n%b == 0)
{
return 0;//函数直接结束,功能强于break;
}
}
return 1;
}
int main()
{
int i = 0;
for (i = 100; i <= 200; i++)
{
if (is_prime(i) == 1)
{
printf("%d\n", i);
}
}
return 0;
}
这是一个求解100-200之间所有素数的代码。