pascal去除相鄰而且重複隨機數要怎麼辦??求思路

時間 2022-01-23 23:32:40

1樓:

把後面重複的數字改為0,在輸出時把不等於0的數輸出即可!

去重程式:

vara:array[1..200]of longint;

i,n,b,m:longintr;

begin

readln(n);

for i:=1 to n do read(a[i]);

for i:=1 to n-1 do

for b:=i+1 to n do

begin

if a[i]=a[b] then a[b]:=0;

end;

m:=0;

for i:=1 to n do

begin

if a[i]<>0 then inc(m);

end;

writeln(m);

for i:=1 to n do

if a[i]<>0 then write(a[i],' ');

end.

2樓:

就二十五個數的話就可以每次都用最古老的方法判重,即用陣列。

vari,j,n:longint;

a:array[1..25] of longint;

begin

n:=1;

while(n<=25) do

begin

a[n]:=random(10000);

for i:=1 to n-1 do

if(a[n]=a[i]) then continue;

inc(n);

end;

writeln(n);

for i:=1 to 25 do

write(a[i],' ');

end.

3樓:匿名使用者

其實相鄰是甚麼定義。。。題目沒有給出﹣﹣ 以下只實現了去重@@var a:array[1..?] of boolean;

i,j,n:integer;

begin

randomize;

for i:=1 to ? do a[i]:=false;

n:=0;

repeat

i:=random(?);

if a[i]=false then inc(n);

a[i]:=true;

until n=25;

for i:=1 to ? do if a[i] then write(i);

end.

差不多就是這些了,所謂「?」是題目給的範圍,自定義。。。

4樓:匿名使用者

用乙個判重陣列:

b:array[0..25]of boolean;

初始值均為true 隨機數k生成後 b[k]:=false;

k:=random(25);

if b[k] then

begin

b[k]:=false;

write(k);

end;

pascal語言常見錯誤,Pascal 語言問題

它會告訴你第幾行第幾列有錯誤的。pascal 語言問題 varn,m integer a array 1.10000 of boolean i,j integer begin readln n,m for i 1 to n do a i true for j 1 to m do for i 1 to...

pascal題 裝箱問題求解法,PASCAL題 裝箱問題求解法

這裡不但有這一題的詳細解答,還有其他相似題目,可供參考。附程式 program ll vars,i,j,n,min,v longint a array 0.10000 of longint procedure run k,va longint begin if va min then min va ...

pascal語言小問題,關於Pascal語言問題 完整的

像writeln sqrta 8 2 中的 8 2,稱之為 雙場寬 我們知道實型 real型,小數 數值在pascal中表現為科學計數法。比如 123.456,表現為 1.2345600000e 02。為了跟我們的日常使用習慣接近,我們用雙場寬控制實型數值的輸出形式。第乙個冒號後面的數表示總場寬,包...

判斷是否為素數(pascal),用Pascal語言 如何判斷素數

通俗一點講 n的因數都分布在數軸上。如果n不是完全平方數,那麼因數總是成雙成對的出現,總有一半因數在sqrt n 的前面。如 24 sqrt 24 4 24的因數有1,2,3,4,6,8,12,24,可以看出,在sqrt 24 4以後,每乙個24的因數都與4和以前的乙個24的因素相對應 1 24 2...

cc和pascal的區別,C 和pascal哪個更有用?

我學的是pascal,專門應付比賽的c和c 對實際操作比較好pascal要不是為了應付比賽,最好不要學都是三種不同的語言,沒有可比性 c 是c的公升級版,前者包括後者.c 很難pascal語言是另一類語言,和c不一樣 c語言與c 的區別有很多 1,全新的程式程式思維,c語言是面向過程的,而c 是物件...