主题:紧急求助 "这个QBASIC题怎么解??"
艳阳
[专家分:0] 发布于 2006-01-04 19:30:00
随机产生50个[300,800]间的随机数,并按从小到大的顺序,以每行5个数的形式输出.
回复列表 (共20个回复)
11 楼
moz [专家分:37620] 发布于 2006-01-12 11:13:00
那只是为了节省不必要的排序那一步的,
既然是随机数,我只是多了一点点限制,以避免全部数值都堆到末段去了
有一个地方你错了,
第一个数是在300-310之间
第二个数是在第一个数-320之间的
第三个数是在第二个数-330之间的
这是排序的需要。
当然了,非得要生成后再排序才是正道。
12 楼
zhangyang9007 [专家分:80] 发布于 2006-01-21 09:00:00
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 楼
zhangyang9007 [专家分:80] 发布于 2006-01-21 09:04:00
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
15 楼
sungfeng21 [专家分:330] 发布于 2006-01-27 06:44:00
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 楼
sungfeng21 [专家分:330] 发布于 2006-01-27 06:51:00
第12,13是同一个人吧
为什么使用
i mod 5 = 0 then print呢
直接使用
print a(i),不可以吗
因为楼主说要以每行5个,既以标准分区格式打印
17 楼
binbin520 [专家分:60] 发布于 2006-01-29 21:33:00
上面的看清题!~是产生数排序不是产生 有序的数!~呵呵!~~!~!这 样不给你分你 有办法吗???你很聪明不过错了!~
18 楼
binbin520 [专家分:60] 发布于 2006-01-29 21:38:00
zom你很聪明 可你错了!~题是产生数后 排序 不是产生 有序的数~!
19 楼
bb5415274 [专家分:0] 发布于 2007-12-13 21:21:00
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 楼
蓝色的水晶 [专家分:90] 发布于 2007-12-14 08:32:00
"随机产生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!
我来回复