请问怎么用C语言求一元二次方程的虚根
请问怎么用C语言求一元二次方程的虚根
搜索更多相关的解决方案:
C语言 一元二次方程
----------------解决方案--------------------------------------------------------
这个只适合做虚根的
#include
#include
#include
void xiaoyu(float a,float b,float c)
{
float q,x,y,m,n;
q=b*b-4*a*c;
m=(-b)/(2*a);
n=(sqrt(-q))/(2*a);
printf("x=%f+%f*i\n",m,n);
printf("y=%f-%f*i\n",m,n);
}
int main()
{
float a,b,c,q;
printf("please input the three number:\n");
scanf("%f%f%f",&a,&b,&c);
q=b*b-4*a*c;
if (q<0)
xiaoyu(a,b,c);
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
谢谢上面楼上对我热心帮助的同学!
----------------解决方案--------------------------------------------------------
这个是可以根据判别式来选择是求实数根还是虚根的程序:
#include
#include
#include
void rel(int x,int y,double q);
void unrel(int x,int y,int z);
void sub(int x,int y);
main()
{
int a,b,c;
double q;
int i;
clrscr();
printf("Input the data:\n");
scanf("%d%d%d",&a,&b,&c);
q=b*b-4*a*c;
printf("%lf\n",q);
getchar();
printf("Choose:\n");
scanf("%d",&i);
switch(i)
{
case 1:rel(a,b,q);break;
case 0:sub(a,b);break;
case -1:unrel(a,b,c);break;
default:printf("Error!\n");break;
}
}
void rel(int x,int y,double p)
{
double x1,x2;
p=sqrt(p);
x1=(-y+p)/(2*x);
x2=(-y-p)/(2*x);
printf("x1=%lf\nx2=%lf",x1,x2);
}
void unrel(int x,int y,int z)
{
double x1,x2;
double t;
t=4*x*z-(y*y);
t=sqrt(t);
x1=(-y+t)/(2*x);
x2=(-y-t)/(2*x);
printf("x1=%lf\nx2=%lf",x1,x2);
}
void sub(int x,int y)
{
int x1;
x1=(-y)/(2*x);
printf("x1=%d",x1);
}
----------------解决方案--------------------------------------------------------