|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
float a,b,c,disc,x1,x2,p,q;
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
printf("*******the result *******\n");
if(disc>=0)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%6.2f,x2=%6.2f\n",x1,x2);
}
else
{
p=-b/(2*a);
q=sqrt(fabs(disc))/2*a;
printf("x1=%6.2f+%6.2f i\n",p,q);
printf("x2=%6.2f-%6.2f i\n",p,q);
}
}
在程序中p,q是如何得来的呢?
以及printf("x1= i\n",p,q);
printf("x2=%6.2f-%6.2f i\n",p,q);
这条语句中为什么会有i,为什么会有%6.2f+%6.2f这种输出方式呢?
求大神知道啊!!
这个程序是方程根,
else
{
p=-b/(2*a);
q=sqrt(fabs(disc))/2*a;
printf("x1=%6.2f+%6.2f i\n",p,q);
printf("x2=%6.2f-%6.2f i\n",p,q);
}
}
这部分是当disc小于零时是复数形式的根,假设disc=-9,开方就是-3i,3i,所以当小于零时加 i,p是表示实数部分 而q表示虚部 虚部有两个不同的值 printf("x1=%6.2f+%6.2lf i\n",p,q);
printf("x2=%6.2lf-%6.2lf i\n",p,q);
|
|