樓主的代碼看的真是讓我蛋疼,全局太多、函數(shù)定義和聲明參數(shù)都沒有類型、判斷是否素數(shù)居然返回double、printf用法錯誤...各種我就不說了,給你修改了一下,編譯運行成功,代碼如下:
成都創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的十余年時間我們累計服務(wù)了上千家以及全國政企客戶,如公路鉆孔機等企業(yè)單位,完善的項目管理流程,嚴格把控項目進度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致贊譽。
#includestdio.h
bool prime(int x);
int main()
{
int m,n,count=0,i,sum=0;
scanf("%d",m);
scanf("%d",n);
for(i=m;i=n;i++){
if(prime(i))
{
count++;
sum=sum+i;
}
}
printf("count=%d,sum=%d\n",count,sum);
return 0;
}
bool prime(int x)
{
int a;
bool result = false;
for(a=2;a*a=x;a++)
{
if(x%a==0)
break;
}
if(a*ax)
result = true;
return result;
}
#includestdio.h
int?sushu(int?z);/*函數(shù)聲明最好放在外面,放到文件前端*/
void?main()
{
int?b,a;
printf("enter?a?date:\n");
scanf("%d",b);
a=sushu(b);
if(a==0||b==0)?
printf("no\n");
else?
printf("yes\n");
}
int?sushu(int?z)
{
int?i?,?j;/*i和返回值要分開,i要做循環(huán)標尺的*/
for(i=2;iz;i++)
{
if(z%i==0)?
{
j=0;
break;/*一旦發(fā)現(xiàn)不是素數(shù),跳出for循環(huán)*/
}
else?
j=1;/*如果用i,就是個死循環(huán),如果是素數(shù),每次你把i=1后for循環(huán)一直繼續(xù)*/
}
return?j;
}
#include?stdio.h
#include?math.h
//判斷是否為素數(shù)的函數(shù)
int?isPrime(int?n)
{
int?i=2;
while(i=(int)sqrt(n))
{
if(n%i?==?0)
return?0;??//不是素數(shù),直接返回0
else
i++;
}
return?1;
}
int?main()
{
int?n,i;
printf("輸入一個正整數(shù):?");
scanf("%d",n);
for(i=2;i=n;i++)
{
if(isPrime(i))??//調(diào)用函數(shù),如果該數(shù)為素數(shù),則輸出
printf("%d?",i);
}
printf("\n");
return?0;
}
示例運行結(jié)果:
輸入一個正整數(shù): 50
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
先編寫一個判斷素數(shù)的函數(shù),類型為bool型
bool Isprime(int number)
{
for (int i = 2; i number; i++)
if (number mod i != 0)
return false;
return true;
}
上面的代碼還可以繼續(xù)優(yōu)化,只是給你提供個思路
然后在主函數(shù)里面循環(huán)調(diào)用這個函數(shù) 比如數(shù)組num[N] 循環(huán)N次,將num[i] 作為參數(shù)調(diào)用上面的函數(shù),然后看返回值,如果未true 素數(shù)的個數(shù)+1,就可以了