2つの浮動小数点数を要求し、それらの差の値をそれらの積で割った値を出力するプログラムを作成し、ユーザーが非数値入力を入力するまで、プログラムに入力値のペアをループさせる必要があります。入力を取得するために使用scanf
する必要があります。
したがって、scanfがtrue / falseに対して値0または1を返すことを知っているので、質問の最後の部分を実行するためにテストしますが、ループが戻って要求することを確認する方法を理解しようとしています入力。
私のコードは次のとおりです。
int main()
{
double num1, num2, different, product, answer;
printf("please enter 2 floatig point numbers:\n");
printf("number one is?\n");
while (scanf("%lf", &num1) ==1)
{
printf("number two is?\n");
while (scanf("%lf", &num2) ==1)
{
if (num1 > num2)
{
different = num1 - num2;
}
if (num2 > num1)
{
different = num2 - num1;
}
if (num1 == num2)
{
different = 0;
}
product = num1*num2;
answer = different/product;
printf("%lf", answer);
}
printf("you're out!");
}
printf("you're out!");
}
入力例:
first num 4.5
second num 3.5
出力:
please enter 2 floatig point numbers:
number one is?
4.5
number two is?
3.5
0.063492
正しい答えが得られ、プログラムは実行され続けますが、入力要求に戻るための解決策を探しています。