C語言的問題

時間 2022-07-11 05:10:03

1樓:匿名使用者

不是隻有45和49是錯誤的 是所有奇數都會被判斷為是素數。所有的偶數都會被判斷為非素數。

for (i = 2; i < number; i++)你的這個邏輯是錯誤的,你對比上面的正確演算法,它實驗了所有比他開跟小的數,判斷沒有因子才返回1。主要在於你沒理解break的功能。自己查break還是我給你講?

推薦你自己先查,不懂再問我。

當一個數有因子,程式執行break,如果沒有,就要繼續除,但你的if中有個else,不滿足number % i == 0的時候他就執行else,所以所有的奇數都返回1被判斷成了素數。判斷素數的方法一般都是用你註釋掉的那個演算法。

2樓:匿名使用者

for裡面的數字沒有除完 比如說數字9 應該是9 / 2 直到 9 / 8 才對

你看看你的 if (number % i == 0) 9 % 2餘數不等於0 後面就直接返回1了

break;

返回的1表示素數

但是9不應該是素數.

改成下面這樣

int isprime(int number)//if (i>(int)sqrt(number*1.0))////else

//for (i = 2; i < number; i++)if(i == number)

return 1;

return 0;}

C語言問題,C語言問題C語言問題

選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...

C語言問題,C語言問題

include void main 最後輸出 1 2 2 3 cca 2,b 2,c 4 2.設計一個程式 計算0xaf 01234567,字元 a 的ascii碼值 十進位制 是多少,101 代表的字元是什麼,32678 1的準確結果是多少,1.456e6 35的準確結果是多少,12345 6的準...

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...