1樓:匿名使用者
試編寫示例**如下:
procedure tform1.btn1click(sender: tobject);
const
arr:array[1..10] of string[11]=('13622220001',
'13622220002','13622220003','13622220004',
'13622220005','13622220006','13622220007',
'13622220008','13622220009','13622220010');
vari:integer;
begin
randomize;
i := trunc(10 * random + 1);
showmessage('當前隨機抽取的號碼是:'+arr[i]);
end;
執行截圖:
2樓:匿名使用者
procedure tform1.button1click(sender: tobject);
vararrint: array[0..9] of integer;
i: integer;
begin
randomize;//隨機
i := random(9);//隨機產生9以內的數arrint[i] := i;
end;
delphi中的陣列賦值
3樓:暖流中的魚
//下次把問題描述清楚
;裡面的值是無規律的
那麼我想的到辦法只有這樣。
你說:陣列的大小是10000,
是指b陣列(10000個無規律的數成)
(你怎麼去設10000個無規律的數?
還是就是指a陣列呢,就是你想要10000個數,這些是隨機的這樣賦值
只要這樣即可:}
const
num = 10000; //陣列的大小
vara: array[1..num] of integer;
i: integer;
begin
randomize;
for i := 1 to num do
a[i] := random(num) + 1;
end;
4樓:匿名使用者
a[5]:=random(100);
random表示取出隨機數。
以上表示式是表示a[5]的值在0~100之間的隨機數。
5樓:
vara:=array[1..5] of integer=(1,2,3,4,5)
只有全域性變數才能賦初始值,而且5個值都要賦滿
6樓:約等於沒有
人家好像問的問題是怎麼在宣告變數的時候賦上初值。
好像delphi不支援的吧。我只知道可以這樣寫。
const
a:array[0..3] of integer = (1,2,3,4);
但這個是常量,變數的話不清楚應該怎麼一下子把一個陣列賦上值。
7樓:匿名使用者
a:=array[1,2,3,4,5] of integer;
delphi中random取不重複的隨機數。
8樓:匿名使用者
1、前面0的問題是因為(假定你現在輸入的是5,即num為5),陣列長度為5,但是隨機數取值是random(5+1),也就是隨機數值是從0-5一共6個數,那自然有一個取不到。
2、改成random(num)的時候,for k:=0 to i do個人感覺應該是for k:=0 to i-1 do
3、隨機數演算法有很多簡單的方法,比goto什麼簡單的多,比如最常見的偽演算法
a.建立陣列x[n],並對每個元素賦值(比如說隨機數在0-n之間),那就x[0]=0、x[1]=1至x[n]=n;
b.從x[0]開始至x[n],將元素隨機與x[0-n]之間的任意一個數字交換
如果是delphi2010以上,也有tdictionary這類東西
9樓:匿名使用者
你每次取的是0-5這6個數字,只儲存其中5個顯示出來,肯定有一個數字沒有。
就像第2次裡面沒有5一樣。
為什麼要用 goto ,continue就可以了
10樓:匿名使用者
看起來程式一般情況下是死迴圈不了的.就是要求輸入的num要不小於2,不然程式會出錯的.
11樓:匿名使用者
加入判斷就行了,如果已經有這個數,重新取。直到找到不重複的。
12樓:匿名使用者
初始化時將陣列置為了0。由於你for k:=0 to i do 這個地方迴圈向後推了一位,導致當隨機到0時,總是檢查到0已存在,從而導致第一次不可能出現0這種情況。
這個地方應該改為for k:=0 to i-1 do
改成l:x:=random(num)出現死迴圈的原因跟前面一樣,都是for k:=0 to i do的問題。迴圈到最後一次了,只剩下0沒有被賦值,而又一直檢測到0已存在。
13樓:匿名使用者
你好,你的問題我來幫你解決:
我針對你的需求,再根據你的**最了一些優化和改進,並且實測通過!
我將整個測試原始檔上傳上來!
其實還可以將這個**弄成獨立的函式,使其能重複應用!
14樓:匿名使用者
其實,不用使用這麼多迴圈,搞得太複雜。你可以參照這個帖子
delphi 顯示陣列內容,一個陣列裡面有10個數值,我要showmassage出來裡面的有內容
15樓:匿名使用者
試編寫示例**如下:
procedure tform1.button1click(sender: tobject);
varintarray: array[0..9] of integer;
i: integer;
begin
randomize;
for i := low(intarray) to high(intarray) do
begin
intarray[i] := random(10000);
end;
for i := low(intarray) to high(intarray) do
begin
showmessage(format('當前陣列第 %d 個,數值為:%d',[i, intarray[i]]));
end;
end;
執行結果圖:
16樓:囚籠山人六
showmessage(inttostr(陣列名[0])+inttostr(陣列名[1])+..........)
從0,1,2,3,4,5,6,7,8,9中任取不同的數
從0,抄1,2,3,襲4,5,6,7,8,9中任取七個不同的數,有c7 10種方法,若七個數的中位數是6,則只需從0,1,2,3,4,5,選3個,從7,8,9中選3個不同的數即可,有c36 c33種方法,則這七個數的中位數是6的概率p c36 c33c 710 16 故答案為 16 0,1,2,3,...
php中怎樣從陣列中隨機取元素出來呢
它的用法也很簡單 array rand arr num arr 用來取元素的陣列 num 隨機取下標的個數其中第二個引數 num 是可選的,預設為1 注意 它的返回值在第二個引數大於 1 的時候是一個陣列 當第二個引數不設或者傳值 1 的時候是一個下標。簡單的示例 如下 1 第二個引數不傳值的情況 ...
數學競賽題 從1,2,3,4,5,6,7,8,9中任取n個數
4.n的最小值為5 證明如下 應想到,被10整除意味著n個數中任意取出來的數之和只能為10 20 30 40.1 首先用特殊法排除 n取1,2,3,4都不滿足條件 若n取4,則取這四個數為9,8,7,6 這4個數中,10 任意兩數之和 20,30 任意三數之和 40,所以無論怎麼取都不可能取出被10...