我想知道为什么当我要求两个参数时,我的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);
1
2
3
a=1.000000; b=2.000000;
f(a)=-3.281718; f(b)=-0.610944; f(a)*f(b)=2.004947;
1 5
a=3.000000; b=1.000000;
f(a)=10.085535; f(b)=-3.281718; f(a)*f(b)=-33.097884;
提前谢谢
答案 0 :(得分:1)
scanf("%f %f \n ", &a,&b);
最后的\ n使scanf忽略第一个换行字符,否则会终止输入。
这样可以正常工作:
scanf("%f %f ", &a,&b);
答案 1 :(得分:1)
从scanf中删除\ n。 scanf(“%f%f”,& a,& b);