連載
» 2014年04月18日 10時00分 公開

完全マスター! 組み込みC言語プログラミング(2):【問題1】1インチは何センチ? 単位を換算しよう (3/3)

[横田一弘 埼玉県立新座総合技術高等学校 教諭,MONOist]
前のページへ 1|2|3       

inchプログラムの解説

 以上を基に、問題1のCプログラムを考えてみます。

 問題1では、インチ、センチメートル、フィートの、3つの単位の長さを扱うので、3つの実数型変数を使います。

 iインチを、cセンチメートルに換算する式、iインチをfヒートに換算する式をC言語では以下のように記述します。


c = 2.54 * i;


f = i / 12;


 scanf関数はキーボードからデータを入力する関数で、次のように定義されています。


int scanf(const char *format,...);
 
scanf関数:書式付き入力関数

 scanf関数は、入力されたデータの個数を返します。第1引数のformatに示す書式指定文字列に従い、キーボードから入力された文字情報をデータ変換し、入力変数にデータを代入する仕事をします。入力変数はカンマ(,)で区切り、formatに続けて記述します。

 書式指定文字列に%fと記述すると、実数を入力することを意味し、scanf関数はformatに続く入力変数に実数を代入します。scanf関数の入力変数には、名前の前にアンパサンド(&)を記述してください。

 次にディスプレイにデータを表示するには、printf関数を使います。printf関数は次のように定義されています。


int printf(const char *format,...);
 
printf関数:書式付き出力関数

 printf関数は、表示された文字数を返します。第1引数のformatに示す書式指定文字列に従い、formatに続いて記述された出力変数の値を文字列に変換してディスプレイに表示します。

 例えば、

printf("インチの長さを入力してください->");


では出力変数はありませんので、formatで記述された文字列がそのまま表示されます。また、

printf("%fセンチ\n%fフィートです。\n", c, f);


では、2つの出力変数cとfを書式指定文字列に記述された%fの部分に、実数値を10進表記に変換して表示します。

 最初のcの値は最初の%fに差し込まれ、2番目のfは2番目の%fに差し込まれるように、書式指定と出力変数は順番に対応します。

 円マーク(\)付きの文字は、ディスプレイで動作を生じされる制御文字で、\nは改行、つまり表示位置を次の行の先頭に移します。

宿題2:入力した金額から必要なお札、硬貨の枚数を計算

 それでは、次回の宿題です。

宿題2:

金額を入力し、1万円札、5000円札、1000円札、500円玉、100円玉、50円玉、10円玉、5円玉、1円玉が最少でいくつ必要か表示するプログラムを作成してください。


⇒解答と解説は次回



前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.