質問

基数にプログラムを書き込みます。ファイル内の数字を指定します。 これが私のコードです:

rsort(a):
    if a:
        bins = [ [],[],[],[],[],[],[],[],[],[] ]
        m = max(a)
        r = 1
        while m > r:
            for e in a:
                bins[(e/r)%10].append(e)
            r = r * 10
            a = []
            for i in range(10):
                a.extend(bins[i])
                bins[i] = []
        return a

def readfile(infile):
  grid = []
  f = open(infile, 'r')
  lines = f.readlines()
  f.close()
  return grid

def writefile(outfile):
    grid = []
    f = open(outfile, 'w')
    f.write()
    f.close
    return grid

def main():
    infile = readfile("radix.in")
    outfile = writefile("radix.out")
    sortedvar = rsort(infile)
main()
.

SO、F .WRITE()でRSORT()とRSORT(A)のプラグを試してみましたが、それは私に間違って言っています。そして、空のままにすると、関数が1つの引数を必要とする必要があると伝えます。Radix.outで基数ソート結果を印刷するにはどうすればいいですか?

役に立ちましたか?

解決

私はあなたの質問が一般的に呼び出しと関数呼び出しについてのようですが、RSORT機能をまったく見ていませんでした。これは可能性です(数字がすべて最初の行にあると仮定して)。

def readfile(infile):
  nums = []
  f = open(infile, "r")
  line = f.readline()
  f.close()
  return [int(x) for x in line.split()]

def writefile(outfile, nums):
    f = open(outfile, 'w')
    f.write(' '.join([str(x) for x in nums]))
    f.write('\n')
    f.close()

def main():
    nums = readfile("radix.in")
#    nums = rsort(nums)
    writefile("radix.out", nums)

main()
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top