我需要编写一个程序来请求两个浮点数并打印它们的差值除以它们的乘积,并让程序循环遍历输入值对,直到用户输入非数字输入。我需要用来scanf
接受输入。
所以,我知道 scanf 返回值 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
我得到了正确的答案并且程序继续运行,但我正在寻找一种解决方案来返回输入请求。