scanf の例

次のような目標があるとします。(が入力です)

マイル入力>15
15.000 マイルは、24.135 キロメートル
マイル入力>30
30.000 マイルは、48.270 キロメートル
マイル入力>0
0.000 マイルは、0.000 キロメートル
終了

このプログラムは、どのようにようなことを繰り返しているのでしょうか?
それは、マイルをの入力と、それをメートルに換算して表示することを繰り返しています。
まず次のように1の処理だけをプログラミングして、実行を確認します。

#include <stdio.h>
main()
{
	double mc = 1.609; 	/* マイルをメートルに換算するため定数記憶用 */
	double mile; 		/* 変換対象のマイルデータ記憶用 */
	
	printf("マイル入力>");
	scanf("%lf", & mile );
	printf("%f マイルは、", mile);
	printf("%f キロメートル\n", mile * mc);
}

正しく動いたら、do { と }while(条件);で囲むように作るとよいでよう。

do { と }while(条件);で囲む前に、
一回の入力処理が正しく行われていることを実行確認していれば、
このようなミスがあるプログラムができないのですが、 そうしなかったので、プログラムミスがあります。(コンパイルエラーはありません。)

←目標が得られるように修正してからクリックください。  (分からない場合もクリックください)
わからない場合は、クリックして覚え、再びチャレンジしましょう。