0

私は宿題をしていて、この特定の質問のために文字通り5時間立ち往生しました.

最後の桁 d10 はチェックサムであり、次の式を使用して他の 9 桁から計算されます。 d8*8 + d9*9) % 11; チェックサムが 10 の場合、最後の桁は ISBN 規則に従って X で示されます。

ユーザーに最初の 9 桁の入力を求め、10 桁の ISBN (先行ゼロを含む) を表示するプログラムを作成してください。プログラムは入力を整数として読み取る必要があります。たとえば、013601267 と入力すると、プログラムは 0136012671 を表示する必要があります。ユーザーが先頭のゼロを省略した場合、プログラムは先頭のゼロを追加して続行する必要があります。たとえば、12345 と入力すると、プログラムは「正しい ISBN 番号は 0000123455 です」と表示します。

ループ、スイッチなどすべてを使用しましたが、私の知る限りでは解決できませんでした。d10 は計算できますが、問題は次のとおりです。2) 先行ゼロを追加する方法がわかりません。

誰かがこの問題の答えを持っている場合、または誰かが私にアドバイスできる場合は、助けてください!!

4

1 に答える 1

2

まず、入力を a に解析しますString

次に、 をループし、各文字を (必要な計算を実行して) type の sum 変数にString追加します。(それぞれの指数を掛ける+ 1.)intintchar

最後にモジュラスを行います。次に、結果が 10 の場合は、ISBN 文字列に X を追加します。それ以外の場合は、剰余演算の結果を追加します。

編集:ゼロを追加するには、ISBN の形式で文字数を数え、そのゼロの数をStringISBN の先頭に 9 追加します。

お役に立てれば!!

于 2013-02-25T00:57:07.737 に答える