读书人

兄弟们!一个简单的一元二次方程有关问

发布时间: 2012-03-11 18:15:39 作者: rapoo

兄弟们!一个简单的一元二次方程问题~
求解 一元二次方程 ax*x+bx+c=0


我的程序如下
#include "stdio.h "
#include "math.h "
main()
{
float a,b,c,x1,x2;
float deta=b*b-4*a*c;

pirntf ( "please input a,b,c ");
scanf ( "%f%f%f ",&a,&b,&c);

if (a!=0)
{
if (deta> =0)
{
if(deta==0)
{
x1=x2=-b/(2*a);
printf ( "x1,x2 ");
}
else
{
x1=(-b+sqrt(deta))/(2*a);
x2=(-b-sqrt(deta))/(2*a);
printf ( "x1,x2 ");
}
}

else
{
printf ( "no ");
}
}

else
printf ( "fei yiyuanercifangchengzu ");


}

出错如下 :
第一个错误 float a,b,c,x1,x2;
float deta=b*b-4*a*c;
我如果把float deta=b*b-4*a*c;这句移到 scanf后错误就可以解决 ,请问维什莫呢? 我这都是在定义变量,为何有个顺序问题呢?为何不能把变量定义出来后,在把scanf输入的值往里代入?


第2个错误
好像说我的 x1,x2 is assigned a value which is never used in function main 请问这个错误出在那里?

谢谢大虾们的耐心解答


[解决办法]
大哥,,,,,,咋不求值出来呢???
应该这样
#include "stdio.h "
#include "math.h "
main()
{
float a,b,c,x1,x2;
float deta;

printf ( "please input a,b,c ");//你的PRINTF输错了。。。。
scanf ( "%f%f%f ",&a,&b,&c);
deta=b*b-4*a*c;//先定义,后计算
if (a!=0)
{
if (deta> =0)
{
if(deta==0)
{
x1=x2=-b/(2*a);
printf ( "%f,%f\n ",x1,x2);//为什么不;计算出值呢
}
else
{
x1=(-b+sqrt(deta))/(2*a);
x2=(-b-sqrt(deta))/(2*a);
printf ( "%f%f ",x1,x2);
}
}

else
{
printf ( "no ");
}
}

else
printf ( "fei yiyuanercifangchengzu ");


}
就这样吧,应该可以了。。。。。
至于x1,x2 is assigned a value which is never used in function main 是你的X1,X2没有输出,怎么用它。?(%F)代表它FLOAT啊。要这个才去掉WARNINGS
俺人也菜,本学C++的,所以在VC里编译了好几次。有些语法表达式不知呀。呵呵

读书人网 >C++

热点推荐