線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:925
推到 Plurk!
推到 Facebook!

用矩陣跟迴圈產生九個隨機的數碰到的疑問

答題得分者是:rick060
noodlejay
一般會員


發表:8
回覆:18
積分:10
註冊:2011-08-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-08-25 12:53:20 IP:120.107.xxx.xxx 訂閱
今天用BCB,我要隨機產生九個數,然後將他做排序,碰到一問題
以下程式碼都是寫在Button裡的

一開始我這樣寫的 ,跑第一次好像沒問題,
第二次就出現怪數字並且多出一個亂碼
我想知道這問題出在哪裡= =?

[code cpp]
int r[8];
Canvas->Font->Size=15;
for (int i=0;i<9;i )
{
r[i]=random(9) 1;
Canvas->TextOut(20,i*25,r[i]);
}

[/code]


後來我修改了寫法,
其一是直接印出隨機的數,可是沒辦法拿來用? = =

[code cpp]
int r[8];
Canvas->Font->Size=15;
for (int i=0;i<9;i )
{
Canvas->TextOut(20,i*25,random(9) 1); //直接用random
}
[/code]

雖然沒有了bug但是沒能拿來運算?= =
於是想了其二的方法【土法煉鋼】
這實在是很沒SENSE的作法...

[code cpp]
int b[9],a1,a2,a3,a4,a5,a6,a7,a8,a9 ;
a1=random(9) 1;
a2=random(9) 1;
a3=random(9) 1;
a4=random(9) 1;
a5=random(9) 1;
a6=random(9) 1;
a7=random(9) 1;
a8=random(9) 1;
a9=random(9) 1;
Canvas->TextOut(20,0,a1);
Canvas->TextOut(20,15,a2);
Canvas->TextOut(20,30,a3);
Canvas->TextOut(20,45,a4);
Canvas->TextOut(20,60,a5);
Canvas->TextOut(20,75,a6);
Canvas->TextOut(20,90,a7);
Canvas->TextOut(20,105,a8);
Canvas->TextOut(20,120,a9);
[/code]


最終我找到ok的辦法,再裡面宣告一個變數,印出來之後
在指定給r[i],似乎問題就迎刃而解。
我想請教一下我原本的寫法是不是哪裡有觀念錯誤

[code cpp]
int r[9]; //由於大大的指正,雖然沒有跳出問題我還是將r[8]改成r[9]
Canvas->Font->Size=15;
for (int i=0;i<9;i )
{
int a;
a=random(9) 1;
Canvas->TextOut(20,i*25,a);
r[i]=a;
}

[/code]




編輯記錄
noodlejay 重新編輯於 2011-08-24 22:54:47, 註解 無‧
noodlejay 重新編輯於 2011-08-29 10:00:22, 註解 無‧
rick060
高階會員


發表:2
回覆:112
積分:217
註冊:2009-11-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-08-29 11:09:54 IP:60.250.xxx.xxx 未訂閱
int r[8]; //宣告8個元素

for(int i = 0 ; i < 9 ; i ) //但這邊居然使用了9個元素??
;

程式沒 crash 已是萬幸。


===================引 用 noodlejay 文 章===================

[code cpp]
int r[8];
Canvas->Font->Size=15;
for (int i=0;i<9;i )
{
r[i]=random(9) 1;
Canvas->TextOut(20,i*25,r[i]);
}

[/code]
noodlejay
一般會員


發表:8
回覆:18
積分:10
註冊:2011-08-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-08-29 23:19:22 IP:120.107.xxx.xxx 訂閱
咦~對耶= = r[8]..是r[0]~r[7] ...
===================引 用 rick060 文 章===================
int r[8]; //宣告8個元素

for(int i = 0 ; i < 9 ; i ) //但這邊居然使用了9個元素??
;

程式沒 crash 已是萬幸。


===================引 用 noodlejay 文 章===================

[code cpp]
int r[8];
Canvas->Font->Size=15;
for (int i=0;i<9;i )
{
r[i]=random(9) 1;
Canvas->TextOut(20,i*25,r[i]);
}

[/code]
noodlejay
一般會員


發表:8
回覆:18
積分:10
註冊:2011-08-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-08-29 23:27:04 IP:120.107.xxx.xxx 訂閱
真的 我把最原先的改成r[9]..就正常了

那最後面又為什麼成功@_@..自己生出了r[8]..........
[code cpp]
int r[9];
Canvas->Font->Size=15;
for (int i=0;i<9;i )
{
r[i]=random(9) 1;
Canvas->TextOut(20,i*25,r[i]);
}
[/code]

系統時間:2017-12-18 9:22:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!