函數輸出100全部素數(while 與 if 區別)—c語言練習(19)

/求100以內全部素數,每行輸出10個,要求定義和調用函數prime(m)判斷是否爲素數,是返回·1,不是返回0/

錯誤1:while與if區別:if執行一次後跳出循環,while判斷爲真後執行後面語句,執行完後繼續回繼續判定,直到爲假爲止。

錯誤2:prime()函數,for語句下加了括號循環,錯誤原因:若爲0直接跳出,不會爲1;若能執行下一條語句就一定是素數

#include<stdio.h>
#include<math.h>
int main(void)
{
    int count,m;
    int prime(int m);

    count=0;
    for(m=2;m<=100;m++)
    {
        if(prime(m)!=0)//錯誤1
        {
            printf("%6d",m);
            count++;
            if(count%10==0)
                printf("\n");
        }
    }
    printf("\n");
}
    int prime(int m)
    {
        int n,i;
        if(m==1)return 0; 
        n=sqrt(m);
        for(i=2;i<=n;i++)
            if(m%i==0)
            {
                 return 0;//若m不是素數,函數立即返回,並回送結果0,若能夠正確執行到最後一句,就一定是素數,返回1
                 //錯誤原因:for語句加上了括號
            }

            return 1;
        
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章