開發平台(Platform): (Ex: Win10, Linux, ...)
win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
gcc
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
在練習用malloc寫程式
基本上就是寫一個找質數的程式而已
課本的範例是定義一個陣列prime[500]
我改成用malloc來寫這個陣列
基本上所有問題都解決了可是for迴圈的部分我寫的跟題目的有兩個地方不一樣
而且還不能改 一改程式就出問題跑不下去
餵入的資料(Input):
無
預期的正確結果(Expected Output):
執行次數
14622次
錯誤結果(Wrong Output):
執行次數
14788次
程式碼(Code):(請善用置底文網頁, 記得排版)
我寫的code:
http://ideone.com/c4b2tF
課本範例的code:
http://ideone.com/bddz7K
補充說明(Supplement):
在ide上不能跑不知道是不是因為malloc的關係
不過我在自己電腦上用cmd執行沒有問題
想請各位前輩指點一下 感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 66.86.130.129
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1483630675.A.FAF.html
※ 編輯: nikuman (66.86.130.129), 01/05/2017 23:40:43
推
01/05 23:47, , 1F
01/05 23:47, 1F
→
01/05 23:48, , 2F
01/05 23:48, 2F
→
01/05 23:48, , 3F
01/05 23:48, 3F
→
01/05 23:49, , 4F
01/05 23:49, 4F
→
01/05 23:50, , 5F
01/05 23:50, 5F
→
01/05 23:59, , 6F
01/05 23:59, 6F
→
01/06 00:00, , 7F
01/06 00:00, 7F
我有試過把這段包在最裡面的迴圈外面
因為怎麼寫都跑不出來(迴圈只跑不到一千次)
才乾脆把它包在裡面的
後來雖然迴圈能跑可是又有些地方跟我想的不太一樣
程式語言真是深奧..
請問這兩種寫法會差很多嗎
我的想法是 那段程式只會在i == ptr的時候起作用
所以裡面外面的效果是一樣的
差別在寫在外面的話我必須在一開始就定義int i = 0
推
01/06 00:07, , 8F
01/06 00:07, 8F
→
01/06 00:08, , 9F
01/06 00:08, 9F
→
01/06 00:09, , 10F
01/06 00:09, 10F
→
01/06 00:10, , 11F
01/06 00:10, 11F
原來如此 我再思考一下
感謝回答^_^
→
01/06 00:12, , 12F
01/06 00:12, 12F
→
01/06 00:12, , 13F
01/06 00:12, 13F
→
01/06 00:12, , 14F
01/06 00:12, 14F
因為把ptr == i那行寫在外面
弄了很久程式都只會跑不到一千次
完全沒辦法把找到的下一個質數寫進陣列
我才改成把那行寫到最裡面的
也沒有隨機亂搬 就是改一點改一點看哪種方法可行
可是改到後面跟我原先的想法已經不一樣了
所以有一點像是找到正確答案之後再思考為什麼是這樣
推
01/06 00:15, , 15F
01/06 00:15, 15F
→
01/06 00:15, , 16F
01/06 00:15, 16F
→
01/06 00:16, , 17F
01/06 00:16, 17F
→
01/06 00:16, , 18F
01/06 00:16, 18F
試著把ptr == i 那行寫到倒數第二層迴圈
看了好久
終於發現問題在哪了
因為之前寫for都習慣寫成 for(int i = 0; i<ptr; i++)
把int拿掉就可以正常執行了
只是不知道為什麼必須把int拿掉..
→
01/06 01:28, , 19F
01/06 01:28, 19F
推
01/06 01:30, , 20F
01/06 01:30, 20F
→
01/06 01:30, , 21F
01/06 01:30, 21F
→
01/06 01:30, , 22F
01/06 01:30, 22F
→
01/06 01:31, , 23F
01/06 01:31, 23F
原來如此! 長知識了
從來不知道宣告在for迴圈裏面會限制參數的範圍
感謝分享
→
01/06 01:35, , 24F
01/06 01:35, 24F
※ 編輯: nikuman (66.86.130.129), 01/06/2017 02:12:32