189 8069 5689

c语言函数复根 c语言共轭复根

c语言函数问题

改成这样就对了。三个函数定义出现了不少语法错误。定义三个函数来对待delta的不同情况。

创新互联公司是一家集网站建设,杭锦企业网站建设,杭锦品牌网站建设,网站定制,杭锦网站建设报价,网络营销,网络优化,杭锦网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

#include"stdio.h"//这个别忘了

#include"math.h"

float x1,x2,disc,p,q;

void greater_than_zero(float a,float b);//函数无返回值,float放这 里

//x1,x2是全局变量,在函数内赋值即可

{ //括号别丢

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

}

void equal_to_zero(float a,float b)//也无返回值

{

x1=x2=(-b)/(2*a);

}

void smaller_than_zero(float a,float b)

{

p=-b/(2*a); //p、q也是全局变量

q=sqrt(disc)/(2*a);

}

void main()

{

float a,b,c;

printf("输入a,b,c:\n")

scanf("%f,%f,%f",a,b,c);

printf("\n 方程:%5.2f*x+%5.2f=0\n",a,b,c);

disc=b*b-4*a*c;//一元二次方程的delta

printf("方程的解是:\n");

if(disc0) //判断delta是否小于0,如果大于0

{

great_than_zero(a,b);

printf("x1=%5.2f\tx2=%5.2f\n\n",x1,x2);

}

else if(disc0) //delta小于0,复根

{

small_than_zero(a,b,c)

printf("x1=%5.2f+%5.2f\tx2=%5.2f-%5.2fi\n",p,q,p,q);

}

else//等于0,有等根

{

equal_to_zero(a,b);

printf("x1=%5.2f\tx2=%5.2f\n\n",x1,x2);

}

}//结束

c语言 求一元二次方程的根,可以为复根 。求大神帮助

如果跟为复根且b等于0,那x1就成了-0.00。最后一个else内改为:

x1 = - b / (2 * a);

x2 = sqrt(-delt) / (2 * a);

x2 = (x2  0) ? x2 : -x2;

if(b!=0)

{

printf("%.2f+%.2fi\n", x1, x2);

printf("%.2f-%.2fi\n", x1, x2);

}

else

{

printf("0.00+%.2fi\n",x2);

printf("0.00-%.2fi\n",x2);

}

c语言 求一元二次方程的根(含复根)

#include "stdio.h"

#include "math.h"

int main(void)

{int a,b,c;

double d,e,f;

scanf("%d %d %d",a,b,c);

d=a, e=b, f=c;

if (a==0)

if (b==0)

{printf("非法方程,请重新输入a,b,c“);

scanf("%d %d %d",a,b,c);d=a, e=b, f=c;}

else

if (b*b-4*a*c==0)

printf("x1=x2=%.6f\n",0-e/(2*d));

else

if (b*b-4*a*c0)

printf("x1=%.6f\nx2=%.6f\n",(-e+sqrt(e*e-4*d*f))/(2*d),(-e-sqrt(e*e-4*d*f))/(2*d));

else

{

【5】;

【6】

printf("x1=%.6f+%.6fi\nx2=%.6f+%.6fi\n",-e/(2*d),sqrt(4*d*f-e*e)/(2*d),-e/(2*d),-sqrt(4*d*f-e*e)/(2*d));

}

5,6没法填

用C语言求方程ax2+bx+c=0的根。

#includestdio.h

#includemath.h

int main ()

{

double a,b,c,d,p;

printf("请输入a,b,c 的值:");

scanf("%lf%lf%lf",a,b,c);

if(a==0)

printf("不是二次方程");

else

{

d=b*b-4*a*c;

if(d==0)

{

printf("有两个相等的根\nx=%7.2lf\n",-b/(2*a));

}

if (d0)

{

printf("有两个不相等的根\nX1=%7.2lf\nX2=%7.2lf\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));

}

if(d0)

{

p=sqrt(-d/(2*a));

printf("有两个共轭复根\nX1=%7.2lfi-%7.2lf\nX2=%7.2lfi-%7.2lf\n",p,b/2,-p,b/2);

}

}     

return 0;

}

扩展资料:

scanf函数用法:

scanf("输入控制符",输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0'。

C语言编程 求一元二次方程的根 !!!

#include iostream

#include cmath

using namespace std;

int main()

{float a,b,c;float x1,x2; cinabc;float dlt=b*b-4*a*c;if(dlt=0){x1=-b/2/a+sqrt(dlt)。

/2/ax2=-b/2/a-sqrt(dlt)/2/a。

couta"x^2+"b"x+"c"=0有两个实根:";cout"x1="x1",x2="x2endl;}

else

{x1=-b/2/a;x2=sqrt(-dlt)/2/a;couta"x^2+"b"x+"c"=0有两个虚根:"。

cout"x="x1"+/-"x2"i"endl;}

return 0。

扩展资料:

成立条件:

一元二次方程成立必须同时满足三个条件:

①是整式方程,即等号两边都是整式,方程中如果有分母;且未知数在分母上,那么这个方程就是分式方程,不是一元二次方程,方程中如果有根号,且未知数在根号内,那么这个方程也不是一元二次方程(是无理方程)。

②只含有一个未知数;

③未知数项的最高次数是2。

参考资料来源:百度百科-c语言

c语言一元二次方程求解(包含复根)

蓝色的那一句,1条语句,3个错误。

1、d0时,sqrt(d)无意义,应该是sqrt(-d)

2、i不是变量

3、2*a应该加括号括起来。

语句修改为:

printf("x1=%.2f+%.2fi,x2=%.2f-%.2fi",p,sqrt(-d)/(2*a),p,sqrt(-d)/(2*a));

另外,你对p的求解也是错的,应该是p=-b/(2*a)

2*a应该用括号括起来。


网站标题:c语言函数复根 c语言共轭复根
分享地址:http://jkwzsj.com/article/hpihgp.html

其他资讯