回 帖 发 新 帖 刷新版面

主题:紧急求助哥哥姐姐帮忙!!!

排序前的数据:
 5  7  3  4  
12  1 25  9
 6 19 34  7

(按列把二维数组从小到大排列)

排序后的数据为:
 1  5  7 19
 3  6  9 25
 4  7 12 34
 [em15]

回复列表 (共5个回复)

沙发

1. 搞清楚数组的总个数及排列形式
2. 进行排序
3. 排好序好进行灌装

板凳

CLS
INPUT N,M
DIM A(N,M)
FOR I=1 TO N
  FOR J=1 TO M
    INPUT A(I,J)
NEXT J,I
FOR I=1 TO N-1
  FOR J=1 TO M-1
    FOR K=I+1 TO N
      FOR L=J+1 TO M
        IF A(I,J)>A(K,L) THEN SWAP A(I,J),A(K,L)
NEXT L,K,J,I
FOR I=1 TO N
  FOR J=1 TO M
    PRNIT A(I,J);
  NEXT J
  PRINT
NEXT I
END

3 楼

定义一个二维数组a(4,4),一个一维数组k(16)。
先把原图的数字读入一维数组
再进行排序。
上面俩步太简单省略。
最后把一维数组转换成二维数组:
for i=1 to 4
  for j=1 to 4
    a(i,j)=k((j-1)*4+i)
    ? a(i,j);"   ";
  next j
  ?
next i

4 楼

CLS
DIM A(3, 4), B(12)
FOR I = 1 TO 3
  FOR J = 1 TO 4
    INPUT A(I, J)
    B((I - 1) * 4 + J) = A(I, J)
  NEXT J
NEXT I
FOR I = 1 TO 11
  FOR J = I + 1 TO 12
    IF B(I) > B(J) THEN SWAP B(I), B(J)
  NEXT J
NEXT I
FOR I = 1 TO 3
  FOR J = 1 TO 4
    PRINT USING "###"; B((J - 1) * 3 + I);
  NEXT J
  PRINT
NEXT I
END
    

5 楼

INPUT N,M
DIM A(N,M)
FOR I=1 TO N
  FOR J=1 TO M
    INPUT A(I,J)
NEXT J,I
FOR I=1 TO N-1
  FOR J=1 TO M-1
    FOR K=I+1 TO N
      FOR L=J+1 TO M
        IF A(I,J)>A(K,L) THEN SWAP A(I,J),A(K,L)
NEXT L,K,J,I
FOR I=1 TO N
  FOR J=1 TO M
    PRNIT A(I,J);
  NEXT J
  PRINT
NEXT I

我来回复

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