关于scanf的问题
解一元二次方程#include <stdio.h>
#include <math.h>
main( ) {
float a,b,c,d,x,y; //x,y分别为方程的两个解//
printf("Please input a,b,c\n");
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
d=b*b-4*a*c; //d为根的判别式 //
if (d>=0)
{
x=(-b-sqrt(d))/(2*a);
y=(-b+sqrt(d))/(2*a);
printf("x=%5.2f,y=%5.2f",x,y);
}
else
printf("方程无实根");
}
可以满足要求
错误的解一元二次方程
#include <stdio.h>
#include <math.h>
main( ) {
float a,b,c,d,x,y; //x,y分别为方程的两个解//
printf("Please input a,b,c\n");
scanf("%f,%f,%f",&a,&b,&c); //错误的地方//
d=b*b-4*a*c; //d为根的判别式 //
if (d>=0)
{
x=(-b-sqrt(d))/(2*a);
y=(-b+sqrt(d))/(2*a);
printf("x=%5.2f,y=%5.2f",x,y);
}
else
printf("方程无实根");
}
结果都是方程无实根
scanf("%f",&a); scanf("%f",&b); scanf("%f",&c); 与 scanf("%f,%f,%f",&a,&b,&c);有什么区别吗?这两段代码都可以运行,前者是正确的,后者是错误的。求解答!