怎么用c语言判断一个数是否为整数(这个数是开平方出来的)?

怎么用c语言判断一个数是否为整数(这个数是开平方出来的)?,第1张

因为实型和整型变量是不能直接比较的,要做一步类型转换才能比较首先要明确允许的误差是多少。比如一般情况误差的绝对值小于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为算数平方根函数)。这样可以减少判断次数,提高效率。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13253149.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-27
下一篇 2023-06-27

发表评论

登录后才能评论

评论列表(0条)

保存