回 帖 发 新 帖 刷新版面

主题:这个题可以这样吗?

从键盘上输入若干个单词,计算机自动排列顺序(A-Z)打印出来?
第一种思路:是这样子的。:
input n '表示有n个单词
dim a$(n)
‘赋值
for i=1 to n
input a$(i)
next i
’选择排序法
for i=1 to n-1
  k=i
for j=i+1 to n
if a$(k)>a$(j) then k=j
next j
if k<>i then swap a$(i),a(k)
next i
'输出
for i=1 to n
? a$(i);
next i
end
如:键盘输入个数为:n=3
               串为:school
                     abc
                     xyzp

    结果为:abcschoolxyzp  (只比较这整个单词的大小)

第二种思路是:
       按题目的意思。结果是不是应该为:abcchloopsxyz (拆分每个字母并从小到大排序)。那又应该什么编,
  



回复列表 (共2个回复)

沙发

input n '表示有n个单词
  for i=1 to n
    input a$
    b$=b$+ltrim$(rtrim$(a$))
  next i

  for i=1 to len(b$)-1
      for j=i+1 to len(b$)
          if mid$(b$,j,1)>mid$(b$,i,1) then
             a$=mid$(b$,j,1)
             mid$(b$,j,1)=mid$(b$,i,1)
             mid$(b$,i,1)=a$
          endif
  next j,i
  '输出
  print b$;

板凳

INPUT N
DIM A$(N)
FOR I=1 TO N
INPUT A$(I)
NEXT
10 FOR I=1 TO N-1
IF ASC(LEFT$(A$(I),1)) > ASC(LEFT$(A$(I+1),1)) THEN
SWAP A$(I),A$(I+1)
F=1
ELSE : F=0
END IF
NEXT
IF F=1 THEN GOTO 10
FOR I=1 TO N
PRINT A$(I)
NEXT
END

我来回复

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