2012-12-04 4 views
0

두 개의 매개 변수를 물어 보면 왜 내 scanf가 계속 작동하는지 궁금합니다. do-while 루프의 scanf


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; 

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

scanf()에서'\ n'을 (를) 제거하십시오. – Omkant

+0

복사하십시오! 덕분에 ! –

답변

1
scanf("%f %f \n ", &a,&b); 

끝에 \ n을이 (가) 다른 입력을 종료했을 최초의 개행 문자를 무시는 scanf하게 사전에 감사합니다.

이 잘 작동합니다 :

scanf("%f %f ", &a,&b); 
+0

잘 작동 감사합니다! –

+0

도움이 되었다면 올바른 답을 선택하여 질문을 닫으십시오. – asheeshr

1

제거 \ 없음을 scanf와에서. scanf ("% f % f", & a, & b);