求二元函数实数根c语言 二元实值函数

我的这个C语言编写的求解二元方程的两个根的程序有哪些错误?

这个问题在于,当判别式-1E-6(相当于判别式小于0),求共轭复数根时,你的x1和x2事先都是double类型(双精度浮点实数型),这个类型不能存储虚数。再加上rparti没有定义(因为系统会把rparti作为一个完整的标识符看待,所以你不能那样写)

目前成都创新互联公司已为上1000家的企业提供了网站建设、域名、雅安服务器托管、网站改版维护、企业网站设计、钟楼网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

我的建议,在求共轭复根时,x1和x2就不要再表示两个根了,分别用来代表实数部分和去掉虚数单位的虚数部分就行,然后用“字符串组合"的方式输出。在这种情况下,不要直接只写一条输出语句在最后(倒数第2行),而是在每个判别式的分支都写一次printf语句比较好。

具体说,就是在前面的if分支和else if分支都写上输出(倒数第二行的输出去掉),后面else分支写成

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

这里的x1和x2代表实数部分和虚数部分。

然后写如下的输出语句:

printf("x1=%lf+%lfi, x2=%lf-%lfi", x1,fabs(x2),x1,fabs(x2));

注意,虚数部分x2的符号要去掉(所以用了fabs函数),而是在字符串中写上+和-号,以形成共轭复数的形式

另外,这个程序当中a==0的情况你没有求解,而是显示了一行错误信息,所以,你的printf更不能放在倒数第二行了(这已经是所有分支的外面了),原因是a==0的时候x1和x2从未赋值

如何用C语言解二元一次方程组

设计思路如下:

1、问题描述:

给定一个二元一次方程组,形如:

a * x + b * y = c;

d * x + e * y = f;

x,y代表未知数,a, b, c, d, e, f为参数。

求解x,y。

2、数据规模和约定:

0 = a, b, c, d, e, f = 2147483647。

3、设计思路:

二元一次方程组是由两个含有两个未知数的方程组成的,要求解,就要把二元转化为一元。由二元一次方程组的解法思想知,要把二元转化为一元.

实现的功能代码如下:

扩展资料:

C语言解求二元一次方程:(顺序消元法)

“消元”是解二元一次方程的基本思路。所谓“消元”就是减少未知数的个数,使多元方程最终转化为一元方程再解出未知数。这种将方程组中的未知数个数由多化少,逐一解决的想法,叫做消元思想。

实现代码如下:

因为在求解过程中只有数之间的运算,而没有整个式子的运算,因此这种方法被广泛地用于计算机中。

c语言求解2元一次方程根,我的全部是无解,求大神看是哪错了。

//问题有点多,不方便指出,更改如下,对应着看吧,调试过的,没问题;

#includestdio.h

#includemath.h //使用开方函数要引入这个头文件

void main()

{

float a,b,c,d,e,x1,x2,x;

//输入最好一个一个输入,一下子输入容易出毛病

printf("请输入a:\n");

scanf("%f",a);

printf("请输入b:\n");

scanf("%f",b);

printf("请输入c:\n");

scanf("%f",c);

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

if (d0)

{

e=(float)sqrt(d);//使用开放函数得到的是double类型,比float级别高,要强转为float

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

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

printf("x1=%.2f,x2=%.2f",x1,x2);//输出保留两位小数

}

else if (d==0)

{

x=-b/(2*a);

printf("x=%.2f",x);

}

else

printf("无解");

printf("\n");

}


本文题目:求二元函数实数根c语言 二元实值函数
当前链接:http://myzitong.com/article/dddsioe.html