平成22年春期午後問9

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
なななさん  
(No.1)
https://www.fe-siken.com/kakomon/22_haru/pm09.html
eの正答がカなのですが、選択肢の処理がどういった意味を持つのかわかりません。
よろしければ回答お願いします。
2022.08.30 16:30
nsさん 
FE シルバーマイスター
(No.2)
図2~4を参照すると、キーワード部分には必ず"D○○"や"R○"といった文字列が現れることがわかります。○の部分は数字が入ります。具体例としては"D2"や"R30"などです。
結論だけを言うと、空欄eを囲むwhileブロックを抜けるとき、iの値を2や30といった数値にするための処理です。

選択肢カの意味ですが、(i * 10) + (ch2 - '0')と分けて考えます。

i * 10については単純で、数値が二ケタになるケースをカバーしています。文字列を左から読み込んでいくので、"12"という文字列があれば、1周目は'1'、2周目は'2'を参照することになります。1 * 10 + 2 = 12とできるようになっています。

ch2 - '0'の部分ですが、文字コードの'1'を数値の1に変換しています。ASCIIコードでは'0'~'9'が順番に並んでいることを利用しており、C/C++では時々利用されるワザです。
2022.08.30 22:44
なななさん  
(No.3)
回答ありがとうございます!二桁への対応というところに全く気付けませんでした...たしかにキーワードは50こまでなのでこのカバーで事足りますね。
手間かけさせましたm(__)m
2022.08.31 11:04

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop