scanf() 请求输入两次

scanf() asking for input twice

我尝试去掉空格和换行符,但无济于事,它仍然要求输入两次。

#include <stdio.h>
#include <math.h>

int main() {
  double a = 0;
  double b = 0;
  double c = 0;
  //controls wether a is a number
  int controllo1 = 1;
  while (controllo1 = 1) {
    printf("insert x^2");
    scanf("%lf", &a);
    getchar();
    if (scanf("%lf", &a)) {
      getchar();
      printf("input  is a number\n");
      controllo1 = 0;
      break;
    }
    else
      printf("input is not a number\n");
  }
}

问题是程序中有两个scanf函数,要求输入两次是可以理解的。删除第 12 行中的那个将解决问题。