編寫(xiě)一個(gè)函數(shù)實(shí)現(xiàn)判斷一個(gè)整數(shù)是否是素?cái)?shù)。如果輸出也在函數(shù)內(nèi)進(jìn)行,才需要把數(shù)組傳到函數(shù)中,否則只要傳數(shù)組元素就可以了。
創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)企業(yè)網(wǎng)站建設(shè)方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及柔性防護(hù)網(wǎng)等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
你原來(lái)的程序問(wèn)題在于:
1. 缺少#include"math.h"。因?yàn)橛玫搅藄qrt();
2. if(ss(a[i])==1)語(yǔ)句中調(diào)用函數(shù)ss的格式與定義不符:a[i]不能傳給a,且缺第二的參數(shù)。
3.? 判斷素?cái)?shù)時(shí),沒(méi)有考慮對(duì)數(shù)字1的處理。
輸出在主程序中進(jìn)行的話,參考White_MouseYBZ網(wǎng)友的回答,進(jìn)行修改即可。
如果打印也在函數(shù)中進(jìn)行,原程序可改為:
#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)??//無(wú)需返回值,改成void
{?int?k,i,j,result;
for(i=0;in;i++)
{?if(a[i]!=1)????//避免1判斷為素?cái)?shù)
{?k=sqrt(a[i]);
for(j=2;j=k;j++)
if(a[i]%j==0)?break;
if(jk)??printf("%d?",a[i]);?//輸出素?cái)?shù)
}
}
}
先編寫(xiě)一個(gè)判斷素?cái)?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)化,只是給你提供個(gè)思路
然后在主函數(shù)里面循環(huán)調(diào)用這個(gè)函數(shù) 比如數(shù)組num[N] 循環(huán)N次,將num[i] 作為參數(shù)調(diào)用上面的函數(shù),然后看返回值,如果未true 素?cái)?shù)的個(gè)數(shù)+1,就可以了
#include stdio.h
int main(){
int a=0; // 素?cái)?shù)的個(gè)數(shù)
int num=0; // 輸入的整數(shù)
printf("輸入一個(gè)整數(shù):");
scanf("%d",num);
for(int i=2;inum;i++){
if(num%i==0){
a++; // 素?cái)?shù)個(gè)數(shù)加1
}
}
if(a==0){
printf("%d是素?cái)?shù)。\n", num);
}else{
printf("%d不是素?cái)?shù)。\n", num);
}
return 0;
}
先編寫(xiě)一個(gè)判斷素?cái)?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)化,只是給你提供個(gè)思路
然后在主函數(shù)里面循環(huán)調(diào)用這個(gè)函數(shù) 比如數(shù)組num[N] 循環(huán)N次,將num[i] 作為參數(shù)調(diào)用上面的函數(shù),然后看返回值,如果未true 素?cái)?shù)的個(gè)數(shù)+1,就可以了