P,q的问题
#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这种输出方式呢?
求大神知道啊!! i的问题我不是很了解。后面那个意思是这个float变量的长度为6,其中小数占2个。例子1234.56。整数四位小数两位一共六位 这个程序是方程根,
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); 这是初中数学问题吧,i表示虚部,△<0就表示没有实根,只能用虚数表示了
页:
[1]