中易网

c语言 e=(int)sqrt(n)报错了,这句有什么问题?

答案:5  悬赏:0  
解决时间 2021-01-20 17:38
c语言 e=(int)sqrt(n)报错了,这句有什么问题?
最佳答案
e=(int)sqrt(n);之所以出错,是因为你用的编译器所支持的sqrt函数有三种重载类型,分别如下:
sqrt(double), sqrt(long double), sqrt(float),而你传入的参数类型为int, 所以报错,用强制转型改成这样就行了e=(int)sqrt((double)n);
代码如下:
#include "stdafx.h"
#include "StdAfx.h"
#include
#include
void main()
{
int su(int n),n;
printf("please enter a integer number:");
scanf("%d",&n);
if(su(n))
printf("Yes\n");
else printf("No.\n");
}
int su(int n)
{
int t=1,i,e;
e=(int)sqrt((double)n);

for(i=1;i if(n%e==0) t=0;
else t=1;
return(t);
}
全部回答
我今天就为这事搞了一下午,是gcc编译库里面需要添加-lm,链接的数学库链接,如果不明白-lm是什么意思,可以百度一下!
报什么错?还是警告?
我觉得关键是那个e错了,因为在数学里面e是有意义的 ,在C语言里,e也是有作用的。如同学生里的一样。所以建议你换一个变量试一试
e=(int)sqrt(n*1.0);//VS里面默认是C++的,C++调用要明确追问为什么n*1.0?这个起调用c的功能吗?能不能解释一下这个用法。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
七月十五用给仙堂烧元宝吗
妈妈被美容院洗脑了 我该怎么把她拔出来
班主任如何处理学生睡觉问题
迪迦奥特曼中一只怪兽来接一个小女孩的是哪一
地砖铺好了.现在想铺地暖,能铺在天花板上吗
跪求精华学校2012年的高中生物肖振龙老师的全
请教一下各位老师,这款壶的底款写的是啥字
要去美国,买的转换插头插头上写的是15A125V
带“农”字的成语有哪些?
高铁G104德州到北京在哪个出站口出
你好!我是一名新手汽车销售员。想问问广汽丰
长虹40q1n不能正常开机的原因
光纤或同轴不能输出5.1声道?只有用3个3.5mm
四平极品老白酒多少钱一瓶
58元4g套餐分闲时和忙时是什么时间度
推荐资讯
关于苏州佳能体检
流量2.79t是什么意思
3.8x2.0的胎囊是男孩女孩
量化策略,国内哪些公司做量化策略?都怎么样
在学校学个java要多钱?
何以缘起,何以缘灭是什么意思?。
深圳市南山区松坪学校地址在哪,我要去那里办
哺乳期宝宝拉肚子妈妈能吃板栗吗
坪山实验学校地址好找么,我有些事要过去
为什么感觉Steam突然火了
DNF鬼泣领域6脱掉后,之前穿着时放出的绿阵还
3台win7电脑怎么用路由器联机红警2共和国之辉
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?