当前位置:首页 » 编程语言 » c语言方程组运算
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言方程组运算

发布时间: 2023-04-14 09:38:35

⑴ 三元一次方程组 公式 c语言

不知你那公式怎么来的,建议采用线性代数的克莱姆方法来解:
为方便和完善期间,增加一个变量H,把x=,y=,z=那三行和后面那一行
替换为:
H=a*(B*g-C*f)-A*(b*g-c*f)+e*(b*C-c*B);
if(H==0) printf("次方程组无解!");
else
{x=(d*(B*g-C*f)-D*(b*g-c*f)+h*(b*C-c*B))/H;
y=(d*(A*g-C*e)-D*(a*g-c*e)+h*(a*C-c*A))/H;
z=(d*(A*f-B*e)-D*(a*f-b*e)+h*(a*B-b*A))/H;
printf("%lf\n%lf\n%lf",x,y,z);}

试验一下,不行再问。其实你的变量设置不大好,为了尽量保持原貌,未做改动。

⑵ C语言编程,二元一次方程组

首先要找到二元一次方程组的通解,例如:ax+by=m cx+dy=n不难算出 x=(md-bn)/(ad-bc) y=(mc-an)/(bc-ad) 这相当于知道了算法,接下来就可以编程序了: int main(){int a,b,c,d,m,n;double x=0,y=0;scanf("%d,%d,%d,%d,%d,%d",&a,&b,&c,&d,&m,&n).

⑶ C语言解方程组..

#include<stdio.h>

int x,y,z;
int main()
{
for(x = 0;x <=20;x ++) {
for(y = 0;y<=33;y++) {
z = 100 -x-y;
if(z%3 == 0 && 5*x+3*y +z/3 == 100) printf("%d %d %d\n",x,y,z);
}
}
return 0;
}

⑷ C语言计算这个方程组,怎么写

#include
<stdio.h>
int
main
()
{
double
a1,a2,a3;
double
b1,b2,b3;
char
cx1,cx2;
char
cy1,cy2;
char
dh;
double
sumx,sumy;
printf("请输入一个表达式:");
scanf("%lf%c%lf%c%c%lf",&a1,&cx1,&a2,&cy1,&dh,&a3);
printf("请敬慧陪输入另一个表达式:");
scanf("%lf%c%lf%c%c%lf",&b1,&cx2,&b2,&cy2,&dh,&b3);
printf("a1=%lf\na2=%lf\na3=%lf\nb1=%lf\nb2=%lf\nb3=%lf\n",a1,a2,a3,b1,b2,b3);
sumy=(b3*a1-a3*b1)/(a1*b2-a2*b1);
printf("y=%lf\n",sumy);
sumx=(a3-a2*sumy)/a1;
printf("x=%lf\n",sumx);
return
0;
}
/*
系数为1时,要写上
请输入一个表达亮蠢式:1x-1y=22.5
请输入另一个碧裤表达式:10x-1y=0
a1=1.000000
a2=-1.000000
a3=22.500000
b1=10.000000
b2=-1.000000
b3=0.000000
y=-25.000000
x=-2.500000
*/

⑸ 求解n元一次方程组的C语言程序,简单点的,网上的太复杂了

#include<stdio.h>
intmain(void)
{
inti,j,m,n,r,k=0,t;//i,j,m,k,t作为循环计数变量;n表示有n个未知数,即n元;r表示有r个方程组成方程组。
printf("请输入未知数个数n和方程的个数: ");
scanf("%d%d",&n,&r);//n表示有n个未知数,即n元;r表示有r个方程组成方程组。
floata[11][20];//用二维数组存储方程组参数。11和100课改动。这里的程序限10元20个方程的方程组。
printf("请输入方程组参数 ");
for(j=0;j<n;j++)
for(i=0;i<r+1;i++)
scanf("%f",&a[j][i]);
if(r<n)
printf("方程有无穷解 ");
if(r==n)
{
printf("方程有唯一解 ");
for(t=0;t<n-1;t++)//循环次数:当t=0时,仅将a[1][0],a[2][0],a[2][1]的值转换为0;t=1时,才将其转换成最简型阶梯矩阵。
for(m=0;m<n;m++)//m表示第m列
for(j=0;j<n;j++)//j表示第j行
if(j!=m)
{
floatb=a[j][m]/a[m][m];
for(i=0;i<n+1;i++)//因为一行的每个元素均要进行运算等式两边才会相等。
a[j][i]-=a[m][i]*b;
}
for(j=0;j<n;j++)//为了将其转换成单位矩阵,见《线性代数》
{
a[j][n]/=a[j][j];
a[j][j]/=a[j][j];
}
}
for(j=0;j<r;j++)
printf("x[%d]=%f ",j,a[j][n]);//输出最终结果,即未知数x,y,z...的值。
return0;
}

输入为:2 2 -1 6 1 -2 4 3 5 7 1 28

即方程组为:

2x+2y- z=6

x-2y+4z=3

5x+7y+ z=28

其正确结果是:x=1,y=3,z=2

⑹ 用c语言编写程序算方程组

c=x1/3-x2/11-1/33; 这里的1/33改成 1.0/33你看看

⑺ c语言 方程组的解数

#include<stdio.h>
int fun(int m,int n)
{
int a=0;
int i,j;
for(i=0;i<m<n?m:n;i++)
{
for(j=0;j<m<n?m:n;j++)
{
if(i*i+j==n&&i+j*j==m)
a++;
}
}
return a;
}
int main()
{
int m,n,x;
FILE *fp;
fp=fopen("......","r"); /毁激巧/......表示文件路径
while(!feof(fp))
{
fscanf("%d",&m);
fscanf("%d",&n);
x=fun(m,n);
printf("%d",x); //没有输铅槐出到文纤键件,只是在屏幕上输出。
}
fclose(fp);
return 0;
}

⑻ 如何用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语言解方程组

/*

1 -2 1 -1 -2 4

交点坐标为(1.22,0.05),(-1.22,4.95)

Press any key to continue

*/

#include<stdio.h>
#include<math.h>

doubleValue(doublex,doublea,doubleb,doublec){
returna*x*x+b*x+c;
}

intmain(){
doublex1,y1,x2,y2;
doublea,b,c,d,e,f,delta;
scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);
delta=(b-e)*(b-e)-4*(a-d)*(c-f);
if(delta<0){
printf("二抛物线无交点。 ");
return0;
}
x1=(-(b-e)+sqrt(delta))/(2.0*(a-d));
x2=(-(b-e)-sqrt(delta))/(2.0*(a-d));
y1=Value(x1,a,b,c);
y2=Value(x2,a,b,c);
printf("交点坐标为(%.2lf,%.2lf),(%.2lf,%.2lf) ",x1,y1,x2,y2);
return0;
}