c语言题目解答 C primer plus 编程题解答

题目:编写一个程序,要求输入两个浮点数,然后打印出用 两者的差值除以两者的乘积所得的结果 在用户键入非数字的输入前让程序循环处理每对输入值

我写的程序:

img

两个变量是 double型,输入那里的格式符是 %lf ,代码里 %f 少了 l(小写 L) 。

你这不行啊,第一遍输入的不就白输入了么?

int main()
{
      double num1,num2;
      while(scanf("%f%f",&num1,&num2) !=EOF)
      {
            if(num1 == 0 || num2 == 0)
                   break;
            printf("%f\n",(num1-num2)/(num1*num2);
      }
      return 0;
}


#include<stdio.h>
#include<math.h>  // For abs()
int main(void)
{
  double FirstNumber;
  double SecondNumber;
  int Switch_1;
  int Switch_2;
  printf("Please Input Any Double:");
  Switch_1 = scanf("%lf",&FirstNumber);
  printf("PLease Input Another Double:");
  Switch_2 = scanf("%lf",&SecondNumber);
 
  while(Switch_1 == 1 && Switch_2 == 1)
  {
    printf("%.2f\n",fabs(FirstNumber-SecondNumber) / (FirstNumber * SecondNumber));
    printf("Please Input Any Double:");
    Switch_1 = scanf("%lf",&FirstNumber);
    printf("PLease Input Another Double:");
    Switch_2 = scanf("%lf",&SecondNumber);
  }
 
  printf("Done\n");
 
 return 0;
}

这是一个博主写的答案 我感觉和我的差不多 就是他把scanf赋值给了Switch_1 不明白有什么区别