满意答案
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);
}
10分享举报