PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] While新手問題
作者:
q10242
(黑田祐司)
2015-04-06 18:52:15
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
DevC++
我現在在解高中生解題系統
裡面的質數問題
為了要判斷輸入的數字是否為質數
並且有可能有兩萬個數字要判斷
為了加快速度 因此有建表機制
邏輯:先判斷表內的數字有沒有能整除的 有就不是質數
如果表內沒有 再從1到X-1都整除一次看看 如果有能整除的 就不是質數
如果以上兩個條件都不行 那就是質數 將這個質數存到prime陣列裡面
以後就可以拿出來比對
餵入的資料(Input):
各種自己隨便亂打的整數
預期的正確結果(Expected Output):
如果是質數應該就會有質數出來
不是質數就會有非質數出來
錯誤結果(Wrong Output):
輸入之後毫無反應
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int prime[20000];
int number;
int i=0;
int j;
while(1);
{
scanf("%i",&number);
for (j=0;j<=i;j++)
{
if(number%prime[j]==0)
{
printf("非質數");
continue;
}
}
for (j=2;j<=number;j++)
{
if(number%j==0)
{
printf("非質數");
continue;
}
}
printf("質數");
prime[i]=number;
i++;
}
return 0;
}
補充說明(Supplement):
我認為可能是我while迴圈裡面的scanf出問題
只是不知道該怎麼改
作者:
EdisonX
(卡卡獸)
2015-04-06 18:54:00
while(1);
作者:
sos0214
(kaleidoscope)
2015-04-06 18:57:00
%i應該要改成%d 另外i這樣值是0請忽略我說的XD 是我沒看過%i的format
作者:
ChiuTW
(Chiu)
2015-04-06 19:13:00
你的 i 不是一直都是 0 嗎 XD我也搞錯,不要理我上面寫的 XD但是 while(1); 啊XD
作者:
bibo9901
(function(){})()
2015-04-06 19:37:00
while( scanf(..) != EOF )
作者:
x000032001
(版廢了該走了)
2015-04-06 22:00:00
建表用篩法跑完再讀inputfor (j=2;j<=number;j++) 你最後會跟自己除
作者: narukaze (Pt)
2015-04-07 21:54:00
你的continue用法, 即使確定這數是非質數,最後仍然會跑到倒數三行, 所以...會有問題.另外, 依照你的敘述, prime[]內應該是i吧?你參考看看吧
http://i.imgur.com/FMTYRT2.png
繼續閱讀
[問題] class和reinterpret_cast運用看不懂
smilekerker
[問題] 座標壓縮
WashFreeID
[問題] 徵求一本[C語法暨程式庫標準辭典]
shuenmeau
[問題] 有關字串的問題
hugovan
[問題] 請教關於執行效率
bbnctu
[問題] 請教網路程式
Dong0129
[問題] cin時 即時抓取當前輸入字元個數
lalababa5566
Fw: [請益] 自學C++
super88168
[問題] C語言將指標丟進函式malloc記憶體問題
coolE
[問題] 如何將字串轉成字元
oskens
Links
booklink
Contact Us: admin [ a t ] ucptt.com