#includestdio.h
成都創(chuàng)新互聯(lián)為企業(yè)級客戶提高一站式互聯(lián)網(wǎng)+設計服務,主要包括成都網(wǎng)站制作、成都網(wǎng)站建設、重慶APP軟件開發(fā)、小程序開發(fā)、宣傳片制作、LOGO設計等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗豐富的經(jīng)驗,可以確保每一個作品的質量和創(chuàng)作周期,同時每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。
#includemath.h
int?prime(int?m)
{
int?k,j;
k=(int)sqrt(m);?//加個強制轉換就可以了,不然會報警告。sqrt()的返回值類型是double????出現(xiàn)紅線,只是有可能是拼寫問題,不代表是錯誤
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有兩個重載函數(shù),一個參數(shù)是double,另一個是float由于你傳的參數(shù)是int在默認的隱式類型轉換中int可以轉換成float也可以轉換為double,編譯器就不知道你想調用哪一個。
VS C語言中 取根函數(shù)有 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中的函數(shù),
而且你的內(nèi)循環(huán)有問題, 更改如下:
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的素數(shù)有以下\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++;
}
}
分享題目:關于c語言sqrt函數(shù)出錯的信息
鏈接URL:http://sd-ha.com/article24/ddsigje.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、App設計、服務器托管、小程序開發(fā)、定制開發(fā)、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)