求一元二次方程的菜鸟问题
#include <stdio.h>#include <math.h>
main()
{
float a,b,c,x1,x2,delta;
printf("ax^2+bx+c=0\na=? b=? c=?\n");
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
delta=(b*b-4*a*c);
if (delta<0)
printf("No result");
else
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("x1=%f,x2=%f",x1,x2);
}
大家不要笑我,结果为什么不对啊?
----------------解决方案--------------------------------------------------------
程序代码:
#include <stdio.h>
#include <math.h>
main()
{
float a,b,c,x1,x2,delta;
printf(\"ax^2+bx+c=0\na=? b=? c=?\n\");
scanf(\"a=%f,b=%f,c=%f\",&a,&b,&c);//输入是要注意你的格式,如a=1,b=2,c=1这样
delta=b*b-4*a*c;
if (delta<0)
printf(\"No result\n\");
else {x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf(\"x1=%f,x2=%f\n\",x1,x2); }
}
#include <math.h>
main()
{
float a,b,c,x1,x2,delta;
printf(\"ax^2+bx+c=0\na=? b=? c=?\n\");
scanf(\"a=%f,b=%f,c=%f\",&a,&b,&c);//输入是要注意你的格式,如a=1,b=2,c=1这样
delta=b*b-4*a*c;
if (delta<0)
printf(\"No result\n\");
else {x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf(\"x1=%f,x2=%f\n\",x1,x2); }
}
----------------解决方案--------------------------------------------------------
如果a=0时,程序就出错
----------------解决方案--------------------------------------------------------
再多个条件就行了
程序代码:
#include <stdio.h>
#include <math.h>
main()
{
float a,b,c,x1,x2,delta;
printf(\"ax^2+bx+c=0\na=? b=? c=?\n\");
scanf(\"a=%f,b=%f,c=%f\",&a,&b,&c);
delta=b*b-4*a*c;
if(a==0&&b!=0)
x1=x2=-c/b;
else if(delta<0||b==0)
{printf(\"No result\n\");return;}
else
{ x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
}
printf(\"x1=%f,x2=%f\n\",x1,x2);
#include <math.h>
main()
{
float a,b,c,x1,x2,delta;
printf(\"ax^2+bx+c=0\na=? b=? c=?\n\");
scanf(\"a=%f,b=%f,c=%f\",&a,&b,&c);
delta=b*b-4*a*c;
if(a==0&&b!=0)
x1=x2=-c/b;
else if(delta<0||b==0)
{printf(\"No result\n\");return;}
else
{ x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
}
printf(\"x1=%f,x2=%f\n\",x1,x2);
}
----------------解决方案--------------------------------------------------------
a=b=c=0,有无数多解.
鉴定完毕!
----------------解决方案--------------------------------------------------------
bug
----------------解决方案--------------------------------------------------------
楼主,你给别人在提示的时候的格式是"a=%f,b=%f,c=%f",那么你在输入的时候的"a=(括号内为输入的数字),b=(括号内为输入的数字),c=(括号内为输入的数字),"a,b,c,还是有逗号,就不能省略.
所以在进行输入的时候最后写成"%f%f%f,&a,&b,&c",在输入数字的时候在数字中间按空格,Tab键,或回车就ok了!
----------------解决方案--------------------------------------------------------
scanf函数里的格式控制那段 越简洁越好
printf函数里的格式控制写的越详细越好
两者恰好相反!!!
----------------解决方案--------------------------------------------------------
谢谢好多高手啊!其实这个选择语句老师那天还没讲,今天听了后才知道这问题有多简单。但是我觉得不会的就要拿出来问,不管有多简单。
这里的人好热情,谢谢谢谢。
----------------解决方案--------------------------------------------------------