因为实型和整型变量是不能直接比较的,要做一步类型转换才能比较首先要明确允许的误差是多少。比如一般情况误差的绝对值小于10-8时我们可以认为两个实数是相等的。
代码如下
#include <stdio.h>
#include <math.h>
main()
{
float b,c;
c=1;
while(c>=0) //如果输入小于0,就结束程序
{
scanf("%f",&c);
b=sqrt(c);
if (fabs(b-(int)b)<1e-8) printf("%.0f的开平方是个整数\n",c);
elseprintf("%.0f的开平方不是整数\n",c);
}
}
结果