do-while循环中的scanf

do-while循环中的scanf,c,scanf,do-while,C,Scanf,Do While,我想知道为什么我的scanf在我只要求两个参数时仍在运行 do { scanf("%f %f\n", &a,&b); printf("a=%f; b=%f;\n",a,b); printf("f(a)=%f; f(b)=%f; f(a)*f(b)=%f;\n",f(a),f(b),f(a)*f(b)); } while(a>=b || f(a)*f(b)>=0); 先谢谢你 scanf("%f %f \n ", &a,&b)

我想知道为什么我的scanf在我只要求两个参数时仍在运行

do {
    scanf("%f %f\n", &a,&b);
    printf("a=%f; b=%f;\n",a,b);
    printf("f(a)=%f; f(b)=%f; f(a)*f(b)=%f;\n",f(a),f(b),f(a)*f(b));
}
while(a>=b || f(a)*f(b)>=0);

先谢谢你

scanf("%f %f \n ", &a,&b);
结尾处的\n使scanf忽略第一个换行符,否则将终止输入

这很好:

  scanf("%f %f ", &a,&b);
从scanf中删除\n。
scanf(“%f%f”、&a和&b)

如果这有帮助,则选择它作为正确答案以结束问题。
  scanf("%f %f ", &a,&b);