QB64に慣れていないので、ドキュメントが疎であるため問題があります。サブではないこと、不正な配列型がサブルーチンに渡されました
CALL sortArray(chars(), LENGTH)
私は上記のREDIMを使用するのでと仮定しています:次の行に「サブに渡された不正な配列型」 -
TYPE character
FName AS STRING * 12
LName AS STRING * 12
ID_Num AS INTEGER
Year AS STRING * 2
GPA AS DOUBLE
END TYPE
DIM LENGTH AS INTEGER
LENGTH = 11
REDIM chars(0) AS character
CLS
n$ = "names1.txt"
OPEN n$ FOR INPUT AS #1
k = -1
WHILE (NOT (EOF(1)))
k = k + 1
REDIM _PRESERVE chars(k) AS character
INPUT #1, chars(k).FName, chars(k).LName, chars(k).ID_Num, chars(k).Year,
chars(k).GPA
WEND
CLOSE #1
CALL sortArray(chars(), LENGTH)
SUB sortArray (score() AS INTEGER, SIZE AS INTEGER)
DIM x AS INTEGER
DIM y AS INTEGER
DIM COMPS AS INTEGER
x = 0
y = 0
COMPS = SIZE - 1
WHILE y < COMPS
x = 0
WHILE x < COMPS
IF score(x) > score(x + 1) THEN
CALL swap2(score(), x)
END IF
x = x + 1
WEND
y = y + 1
WEND
END SUB
SUB swap2 (score() AS INTEGER, x AS INTEGER)
DIM temp AS INTEGER
temp = score(x + 1)
score(x + 1) = score(x)
score(x) = temp
END SUB
私は、エラーを受信していますそれを適切に処理していますが、私はそれをどのように修正するのか本当に分かりません。最終的には、ファイルを配列に読み込み、その配列をソートしてユーザに出力しようとしています。現在、私は実際に配列をソートする方法について固執しています。
ご協力いただければ幸いです。ありがとうございました!
どのようなスコアを並べ替えようとしていますか? 'character'型にスコアプロパティはありません。あなたはGPAプロパティを並べ替えることを意味しますか? –