回 帖 发 新 帖 刷新版面

主题:紧急求助 "这个QBASIC题怎么解??"

随机产生50个[300,800]间的随机数,并按从小到大的顺序,以每行5个数的形式输出.

回复列表 (共20个回复)

11 楼

那只是为了节省不必要的排序那一步的,
既然是随机数,我只是多了一点点限制,以避免全部数值都堆到末段去了
有一个地方你错了,
第一个数是在300-310之间
第二个数是在第一个数-320之间的
第三个数是在第二个数-330之间的
这是排序的需要。

当然了,非得要生成后再排序才是正道。

12 楼

dim a(1 to 50) as integer
for i=1 to 50
  a(i)=int(rnd*501+300)
next i
for i=1 to 49
  for j=1 to 50-i
        if a(j)>a(j+1) then swap a(j),a(j+1)
  next j
next i
for i=1 to 50
  print a(i);
  if i mod 5=0 then print
next i
end

13 楼

dim a(1 to 50) as integer
rem 随机产生50个[300,800]之间的数
for i=1 to 50
   a(i)=int(rnd*501+300)
next i
REM 对产生的50个数进行排序
for i=1 to 49
       for j=i+1 to 50
                if a(i)>a(j) then swap a(i),a(j)
       next j
next i
REM 按要求输出
for i=1 to 50
print a(i);
if i mod 5=0 then print
next i
end

14 楼

15 楼

dim a(50
        REM 定义数组
for i = 1 to 50
   a(i)=int(rnd*501)+300
next i
         REM 产生50个300-800的随机树,并写入数组元素,接下使用冒泡排序法或选择排序法就可以了
for i = 1 to 49
  for j=1to 50-i
    if a(j)<a(j+1)then swap a(j),a(j+1)
  next j
next i
         REM 这里我们使用冒泡排序法
for i = 50 to i step -1
   print a(i),
          REM 每行5个,既一标准分区格式打印
next i
          REM 按顺序打印各数组元素,因为前面使用大到小排序,所以这里循环使用大到小

END
   REM 结束程序

16 楼

第12,13是同一个人吧
为什么使用
i mod 5 = 0 then print呢
直接使用
print a(i),不可以吗
因为楼主说要以每行5个,既以标准分区格式打印

17 楼

上面的看清题!~是产生数排序不是产生 有序的数!~呵呵!~~!~!这 样不给你分你  有办法吗???你很聪明不过错了!~

18 楼

zom你很聪明 可你错了!~题是产生数后 排序 不是产生 有序的数~!

19 楼

randomize timer
cls
DIM a(50)
for i =1 to 50
 a(i)=INT(RND*501)+300
next
for i =1 to 49
 for j =1 to i+1
  if a(i)>a(j) then swap a(i),a(j)
 next
next
for i =1 to 50
 print a(i);
 if i mod 5 = 0 then print
next
end

20 楼

"随机产生50个[300,800]间的随机数,并按从小到大的顺序,以每行5个数的形式输出"

我编写的程序如下:
cls
option base 1
dim a(50)
for i=1 to 50
  a(i)=int(rnd*501)+300
  print a(i);
next i
print
for i=1 to 49
for j=i+1 to 50
  if a(i)>a(j) then swap a(i),a(j)
next j
next i
for i=1 to 50
  print a(i);
  if i mod 5=0 then print
next i
end

我发布本贴后,才看到有如此多的跟贴了.并已有和我类似的贴子了,sorry!

我来回复

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