回 帖 发 新 帖 刷新版面

主题:新手跪求一编程,大家别怕麻烦啊!

产生10个不同的随即数放入一数组,将该数组放入二数组。如果一数组有相同数,那么在二数组就装一个。

 我在编程的过程中发现 在一数组产生 10,11,20,11,18,19,35,10,55,63

 那么存入二数组 10,11,20,0,18,19,35,0,55,63

  显示的时候会显示出0。   该如何才能让二数组的数据变成10,11,20,18,19,35,55,63,0,0  ??????[em8][em8][em8]

回复列表 (共5个回复)

沙发

你是不是要按从小到大顺序存放,将0放在最后?
如果是的话(假设数组二是B):
'------取数组中的0个数,并把0放到后面
count%=ubound(B)
for i%=0 to count%-n%
    if B(i%)=0 then
       n%=n%+1
       swap B(i%),B(Count%-n%)
    endif
next
'------给前面不为0的数排序
for i%=1 to Count%-N%-1
    for j%= i%+1 to Count%-N%
        if B(i%)>B(j%) then swap B(i%),B(j%)
    next
next

板凳

for i=1 to 10
    for j=1 to n
        if a1(i)=a2(j) then exit for
    next
    if j>n then
       n=n+1
       a2(n)=a1(i)
    endif
next

3 楼

cls
for i=1 to 10
    for j=1 to n
        if a1(i)=a2(j) then exit for
    next j
    if j>n then
       n=n+1
       a2(n)=a1(i)
    endif
next i
end

4 楼

其实那个0是自动添加在数组的末尾的,你考虑这个编一下就好了

5 楼

我的容易理解:
CLS
FOR i = 1 TO 9
FOR j = i TO 10
IF a(i) < a(j) THEN SWAP a(i), a(j)
NEXT j, i
FOR i = 1 TO 10
IF a(i) = 0 THEN s = s + 1
IF a(i) <> 0 THEN EXIT FOR
NEXT i
FOR i = s + 1 TO 10
PRINT a(i);
NEXT i
FOR j = 1 TO s
PRINT 0;
NEXT j

我来回复

您尚未登录,请登录后再回复。点此登录或注册