全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:993
推到 Plurk!
推到 Facebook!

請教一個陣列傳遞的問題[xx(]

尚未結案
kingofhippo
一般會員


發表:1
回覆:1
積分:0
註冊:2004-06-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-19 01:19:54 IP:59.104.xxx.xxx 未訂閱
以下是我的主程式 #pragma hdrstop #include "arrange.h" #include  #include //------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { ofstream out("test.txt"); int randgen[10]; int len=sizeof(randgen)/sizeof(randgen[0]); for(int i=0;i<100;i ) { for(int j=int(i/10)*10;j #include template T arrange(T* Array,int length) { T iResult = 0,buf; int i=0,j=0; long seed = (unsigned long)time(NULL); //以下Ran32 class是亂數產生器 Ran32 rg(seed); //此成員函數是產生一個亂數,範圍從0~99 int count=rg.Next(0,99); for(int k=0;k
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-19 09:25:55 IP:59.104.xxx.xxx 未訂閱
陣列的傳遞方式
傳遞陣列其實就是在傳遞一個指標。
一、實際參數就是陣列名稱。
二、形式參數有二種寫法:
1.陣列型態 陣列名稱[]
  如:
void sub(int y[])
{    }
2.指標型態 指標變數
  如:
void sub(int *y)
{    }
//////////////////////////////
一小斷程式,說明陣列的傳遞:
void main()
{
  void add_one();
  void print_array();
  int a[5]={1,2,3,4,5};
  add_one(a);
  print_array(a);  
}
void add_one(int b[])
{
  int i;
  for(i=0;i<5;i  )
    b[i]  ;
}
void print_array(int *p)
{
  int i;
  for(i=0;i<5;i  )
    printf("%d",p[i]);
}
執行結果:23456
kingofhippo
一般會員


發表:1
回覆:1
積分:0
註冊:2004-06-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-19 14:53:06 IP:211.74.xxx.xxx 未訂閱
首先感謝上面這位大大的回覆 傳遞陣列跟指標的這個觀念我了解 但是還是沒法理解為什麼無法正常存取陣列的內容 我的程式平台是C BUILDER 6.0 單步執行來檢查城市所輸出的陣列內容皆是正確的 但若不是單步執行就會出錯 舉個例子來說 現在有一個陣列長度為10 int randgen[10]={0,1,2,3,4,5,6,7,8,9}; 將陣列傳入函數中做亂數排序,以單步執行輸出每一次的排序結果,結果如下 9 3 7 8 4 0 2 6 1 5 1 6 5 9 3 2 0 4 8 7 7 8 9 2 5 0 1 6 4 3 ... 以上為正確結果 但若是不使用中斷點單步執行的話一次執行完畢的結果則會如下 9 3 7 8 4 0 2 6 1 5 9 3 7 8 4 0 2 6 1 5 9 3 7 8 4 0 2 6 1 5 9 3 7 8 4 0 2 6 1 5 ... 每一次的排序結果接相同等於祇存取到一次而已 發表人 - kingofhippo 於 2005/02/19 15:04:24
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-20 20:02:07 IP:221.169.xxx.xxx 未訂閱
很正常... time()函式取得現在的秒數 在極短的時間之內,取得的值都是同一個值 利用這個seed去取亂數一次,當然都會取到同一個亂數 「正常」的用法應該是整支程式只設定一次time seed 建議你把設定seed部份的程式碼移到迴圈之前
系統時間:2024-05-06 2:42:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!