請問為啥產生亂數後無法印出??? |
答題得分者是:RedSnow
|
k99
一般會員 ![]() ![]() 發表:8 回覆:16 積分:4 註冊:2005-07-27 發送簡訊給我 |
各位前輩好 小弟在本討論區收尋亂數的文章後 自己也修改了一下 可是每當執行時 就會當在那邊動也不動 = = 小弟也不知道為啥輝這樣 @@
以下是小弟的程式碼 請大大不吝指教 ^0^
int i,j,Temp,Point[25]; bool BRepeat; for ( i = 0; i < 25; i ) { do { BRepeat = false; Temp = rand()% 1; for ( j=0 ; j<25;j ) { if ( Temp == Point[j] ) BRepeat = true; } }while (BRepeat);//一直到不重複再跳出 Point[i] = Temp; } for(i=0; i<10; i ) Form1->Canvas->TextOutA(i*20,i*20,Point[i]);還有我發現是 for(i=0; i<10; i ) Form1->Canvas->TextOutA(i*20,i*20,Point[i]); 這2行是得bcb當掉的 因為這2行不執行時就沒問題 = = 可是我單獨執行這2行時又沒問題 只要跟上面程式一結合 馬上就當掉了 = = 是我哪邊有錯嗎 請大大幫忙一下 ^.^ |
RedSnow
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
k99 您好: 我將您的程式敘述做了一點小小的修改如下,執行後似乎沒啥大問題,您試試看吧:
int i,j,Temp,Point[25]={0}; // 先全部填零較不易出錯 bool BRepeat; for ( i = 0; i < 25; i ) { do { BRepeat = false; Temp = (rand()%) 1; for ( j=0 ; j<25;j ) { if ( Temp == Point[j] ) { BRepeat = true; break; // 減少執行後續不必要的迴圈 } } }while (BRepeat);//一直到不重複再跳出 Point[i] = Temp; } for(i=0; i<10; i ) { Form1->Canvas->TextOut(i*20, i*20, IntToStr(Point[i])); // 此處不改好像也能 Run,不過函式要求為字串參數,還是改了好些 }7 天天敲鍵盤 v 時時按滑鼠 8 |
k99
一般會員 ![]() ![]() 發表:8 回覆:16 積分:4 註冊:2005-07-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |