次のコードをEclipseで実行しようとしていますが、プログラムを停止するまでコンソールは空白のままになり、その時点で「次の値を入力してください(<=0 to quit)2130567168分は35509452時間48分です。」という出力が表示されます。何度も繰り返されます。
何らかの理由で scanf がデフォルト値を設定しているようです...理由がわかりません。プログラムが停止する前に何も表示されないので、printfがフラッシュされていないことが関係しているのではないかと思いましたが、\nを使用してフラッシュを強制しました。
何か案は?
#include <stdio.h>
const int MIN_PER_HOUR = 60; // minutes per hour
int main(void)
{
int hour, min, left;
printf("Convert minutes to hours and minutes!\n");
printf("Enter the number of minutes (<=0 to Quit):\n");
scanf("%d", &min); // read number of minutes
while(min > 0){
hour = min / MIN_PER_HOUR; // truncated number of hours
left = min % MIN_PER_HOUR; // number of minutes left over
printf("%d minutes is %d hours, %d minutes.\n", min, hour, left);
printf("Enter next value (<=0 to quit)");
scanf("%d", &min);
}
printf("Done!\n");
return 0;
}