从品牌网站建设到网络营销策划,从策略到执行的一站式服务
#includestdio.h
成都创新互联为企业级客户提高一站式互联网+设计服务,主要包括成都网站制作、成都网站建设、重庆APP软件开发、小程序开发、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。
#includemath.h
int prime(int m)
{
int k,j;
k=(int)sqrt(m); //加个强制转换就可以了,不然会报警告。sqrt()的返回值类型是double 出现红线,只是有可能是拼写问题,不代表是错误
for(j=2;j=k;j++)
if(m%j==0)
return 0;
return 1;
}
int main()
{
int m=2,n=20,i,s;
s=0;
for(i=m;i=n;i++)
if(prime(i)==0)
s+=i;
printf("Sum is:%d\n",s);
return 0;
}
int m =sqrt((double)i);C语言是没有重载的,C++才有,你应该是用C++的编译器来写C语言吧在C++中sqrt有两个重载函数,一个参数是double,另一个是float由于你传的参数是int在默认的隐式类型转换中int可以转换成float也可以转换为double,编译器就不知道你想调用哪一个。
VS C语言中 取根函数有 double sqrt(double ) ; float sqrtf(float); long double sqrtl(long double x); 看清楚了,每个sqrt是不一样的。
楼主的4.0不知道是什么类型 ,比如说是float,但是调用sqrt(4.0),所以可能是因为float-double隐式转换调用double sqrt(double x)导致你的结果出错。
头文件加#include math.h//sqrt是math中的函数,
而且你的内循环有问题, 更改如下:
for(;b=d;b++)
{ c=a%d;
if(c==0)
break;
else if(b==d)
printf("%d \n",a);
}
完整程序如下
#include math.h
#include "stdio.h"
void main()
{ int a,b,c,d;
a=101; b=2;
printf("101到200的素数有以下\n");
for(;a201;a++)
{
d=sqrt(a);
for(;b=d;b++)
{ c=a%d;
if(c==0)
break;
else if(b==d)
printf("%d \n",a);
}
a++;
}
}
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图