因为实型和整型变量是不能直接比较的,要做一步类型转换才能比较首先要明确允许的误差是多少。比如一般情况误差的绝对值小于10-8时我们可以认为两个实数是相等的。
代码如下
#include <stdioh>
#include <mathh>
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);
}
}
结果
只能用sizeof(a),与当前机子的整数所占字节数比较(一般为4个字节)。这种方法可以区别整数和实数,但也不是处处成立。例如若a为指针,则一般sizeof(a)也为4别的方法都不严格。#include <iostream>
using namespace std;
int main()
{
double x;
cout << "please input number :" << endl;
cin >> x;
int y = x;
if (x != y)
{
cout << x << " 不是整数" << endl;
}
else
cout << x << " 是整数" << endl;
return 0;
}float
x;
int
y;
scnaf("%f",&x);
y=x;
if
(
y==x
)
printf("%d是整数。\n",(int)x);
else
printf("%f不是整数。\n",x);
当然也可以用简单的条件判断:if
(
(int)x==x
)
使用截尾函数可以验证!
截尾函数是指将小数点后面的全部丢掉!
所以,如果是整数的话,那么截去小数点后面的应该等于原来的这个数字;
否则,便不是整数!
截尾函数:Trunc(x)
判断:If
Trunc(x)=x
Then
……
翻译:如果x是整数的话……
望采纳!判断素数的方法很多。以数学方法为例,按照数学规则,如果在2~n-1中存在因子,则n不是素数。否则n为素数。参考代码如下:int is_prime(int n)//判断n是否为素数。{ int i; for(i = 2; i < n; i ++)//按照数学规则,如果在2~n-1中存在因子,则不是素数。 if(n%i==0)return 0; return 1;}在此基础上,可以将判断范围优化为i<=n/2或i<=sqrt(n)(sqrt为算数平方根函数)。这样可以减少判断次数,提高效率。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)