算整数的平方根
#include<stdio.h>#include<math.h>
int main()
{
int i;
scanf("%d",&i);
printf("%d的平方根的整数部分是%d\n",i,sqrt(i));
return 0;
}
#include<stdio.h>
#include<math.h>
int main()
{
int i,k;
scanf("%d",&i);
k=sqrt(i);
printf("%d的平方根的整数部分是%d\n",i,k);
return 0;
}
为什么只用有第二个可以,第一个也没有错啊。怎么回事????? sqrt得到的应该是浮点数 本帖最后由 肖-肖 于 2021-4-26 22:13 编辑
因为sqrt()函数的返回值使双精度类型的如下
你的第一个程序输出的时候使用%d输出的,所以不行
你的第二个程序用int k = sqrt(i);使双精度转换为了整型
其实应该用强制类型转换的-》就是:int k = (int)sqrt(i);
页:
[1]