判断一个数的平方根是否为整数怎么做?

orochicom 2010-04-11 12:06:40
int m;
float n;
n=sqrt(m);
n%1.0==0?yes:no;
这样判断好像不行哎……怎么改呢?
...全文
3088 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ameyume 2010-04-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 keiy 的回复:]
要用整数判:

C/C++ code

#include <stdio.h>
#include <math.h>
int main()
{
int x,y;
scanf("%d",&x);
y=(int)sqrt(x);
if (x==y*y)
printf("ok\n");
……
[/Quote]
就这样
orochicom 2010-04-11
  • 打赏
  • 举报
回复 1
对哦,
int m,n;
m=sqrt(n);
m*m==n?yes:no;
这样就行了,谢谢大家
saimer1220 2010-04-11
  • 打赏
  • 举报
回复
int m;
float n;
n=sqrt(m);
n%1.0==0?yes:no;

楼住,这里好想有错误了吧“n%1.0==0”这个判断出来结果还是浮点型的吧
柯本 2010-04-11
  • 打赏
  • 举报
回复
要用整数判:

#include <stdio.h>
#include <math.h>
int main()
{
int x,y;
scanf("%d",&x);
y=(int)sqrt(x);
if (x==y*y)
printf("ok\n");
else
printf("no\n");

}
野男孩 2010-04-11
  • 打赏
  • 举报
回复
int m;
float n;
n=sqrt(m);

int k = (int)n;
if (k*k == m)
//yes
else
//no

贪食蛇男 2010-04-11
  • 打赏
  • 举报
回复
if(m * m == n)
贪食蛇男 2010-04-11
  • 打赏
  • 举报
回复
if(m * m) == n不就行了吗?如果不是整数,则是无穷的,由于精度原因,如果根不是整数,相乘后也不是整数

33,320

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧