大佬們,我想知道我哪錯了,我覺得有可能是判斷素數那個地方有漏洞,但是我找不出來





uj5u.com熱心網友回復:
不能等于p,小于puj5u.com熱心網友回復:
你這個問題我已經改過了,但是問題那不在這,因為我把等號去掉的話還是不對
uj5u.com熱心網友回復:
對的對的,應該是不能等p,但是還是有問題
uj5u.com熱心網友回復:
把源代碼檔案發給我,我幫你改一下qq 3405187170uj5u.com熱心網友回復:
不用麻煩您了 您告訴我哪里有漏洞就好了 我自己改 感覺我就是漏掉了某一種情況
uj5u.com熱心網友回復:
if(p%i==0)reutrn 0;
不要break ,因為break 就跳出回圈了,而不會回傳。
uj5u.com熱心網友回復:
對的啊 如果等于零的話,我們跳出回圈就可以了,因為它就一定不是素數了呀
uj5u.com熱心網友回復:
因為你沒有return 所以在現代一點兒編譯器會報錯。老的編譯將是回傳一個不確定的值,那么在外層怎么知道到是,還是不是。
uj5u.com熱心網友回復:
for(i=2;i<=p;i++)
{
if(p%i==0)
{
break;
return 0;
}
else
return 1;
}
你這個for回圈不管咋樣都只能執行一次呀
uj5u.com熱心網友回復:
質數是只能被1和他本身整除。假設是p = 39,在執行for回圈的陳述句塊,在執行if陳述句但if陳述句不滿足,執行else。你的程式就說p是質數但39不是,所以你應該把else里的陳述句塊應該放在for回圈的外面.uj5u.com熱心網友回復:
質數是只能被1和他本身整除。假設是p = 39,在執行for回圈的陳述句塊,在執行if陳述句但if陳述句不滿足,執行else。你的程式就說p是質數但39不是,所以你應該把else里的陳述句塊應該放在for回圈的外面.
我懂了謝謝你
uj5u.com熱心網友回復:
for(i=2;i<=p;i++)
{
if(p%i==0)
{
break;
return 0;
}
else
return 1;
}
你這個for回圈不管咋樣都只能執行一次呀
了解了了解了謝謝你謝謝你
uj5u.com熱心網友回復:
if(p%i==0)
reutrn 0;
不要break ,因為break 就跳出回圈了,而不會回傳。
懂了懂了懂了謝謝謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/67719.html
標籤:C語言
上一篇:雙供電
下一篇:單項選擇題標準化考試系統設計
