編寫一個函數(shù)實現(xiàn)判斷一個整數(shù)是否是素數(shù)。如果輸出也在函數(shù)內(nèi)進行,才需要把數(shù)組傳到函數(shù)中,否則只要傳數(shù)組元素就可以了。
創(chuàng)新互聯(lián)作為成都網(wǎng)站建設公司,專注網(wǎng)站建設、網(wǎng)站設計,有關(guān)企業(yè)網(wǎng)站建設方案、改版、費用等問題,行業(yè)涉及柔性防護網(wǎng)等多個領(lǐng)域,已為上千家企業(yè)服務,得到了客戶的尊重與認可。
你原來的程序問題在于:
1. 缺少#include"math.h"。因為用到了sqrt();
2. if(ss(a[i])==1)語句中調(diào)用函數(shù)ss的格式與定義不符:a[i]不能傳給a,且缺第二的參數(shù)。
3.? 判斷素數(shù)時,沒有考慮對數(shù)字1的處理。
輸出在主程序中進行的話,參考White_MouseYBZ網(wǎng)友的回答,進行修改即可。
如果打印也在函數(shù)中進行,原程序可改為:
#include"stdio.h"
#include"math.h"??//增加
main()
{
int?a[10],n,i;
void?ss(int?a[],int?n);
scanf("%d",n);
for(i=0;in;i++)
scanf("%d",a[i]);
ss(a,n);//調(diào)用函數(shù),判斷并輸出
/×??for(i=0;in;i++)?????//整體刪除
if(ss(a[i])==1)
printf("%d\n";a[i]);?×/?
}
void?ss(int?a[],int?n)??//無需返回值,改成void
{?int?k,i,j,result;
for(i=0;in;i++)
{?if(a[i]!=1)????//避免1判斷為素數(shù)
{?k=sqrt(a[i]);
for(j=2;j=k;j++)
if(a[i]%j==0)?break;
if(jk)??printf("%d?",a[i]);?//輸出素數(shù)
}
}
}
先編寫一個判斷素數(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,就可以了
#include stdio.h
int main(){
int a=0; // 素數(shù)的個數(shù)
int num=0; // 輸入的整數(shù)
printf("輸入一個整數(shù):");
scanf("%d",num);
for(int i=2;inum;i++){
if(num%i==0){
a++; // 素數(shù)個數(shù)加1
}
}
if(a==0){
printf("%d是素數(shù)。\n", num);
}else{
printf("%d不是素數(shù)。\n", num);
}
return 0;
}
先編寫一個判斷素數(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,就可以了
分享標題:c語言數(shù)組函數(shù)求素數(shù) c語言求數(shù)組中的素數(shù)
URL地址:http://jinyejixie.com/article32/doscspc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、網(wǎng)站改版、商城網(wǎng)站、關(guān)鍵詞優(yōu)化、定制開發(fā)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)