c语言解方程组程序,C语言解方程组程序.doc

该程序实现了输入矩阵方程并进行高斯消元法的求解过程,包括矩阵的显示、行交换和系数归一化。用户可以输入方程个数和未知数个数,程序会检查输入是否超出限制。通过高斯消元法,程序能逐步展示每一步的矩阵状态,最后得到解矩阵。
摘要由CSDN通过智能技术生成

实用标准文案

精彩文档

#include

#define M 20

#define N 21

int k,l;

void main()

{

int i,i1,i2,i3,j,j1,j2,m,n,n1,min,min1,imax,*p,(*q)[N],a[M][N];

char c;

do

{

printf("请输入方程个数,不大于20个:");

scanf("%d",&k);

if(k>M)

printf("error!");

}

while(k>M);//如果大于20则重新输入

do

{

printf("请输入未知数个数,不大于20个:");

scanf("%d",&l);

if(l>N-1)

printf("error!");

}

while(l>N-1);//如果大于20则重新输入

for(i=0;i

{

printf("请输入第%d个方程系数包括等号右边的常数按下回车键进入下一步(必须是整数且各方程的第一个系数为正整数)\n请输入",i+1);

for(j=0;j

{

printf("第%d个未知数系数:",j+1);

scanf("%d",&a[i][j]);

}

if(j==l)

{

printf("请输入第%d个方程等号右边的常数:",i+1);

scanf("%d",&a[i][j]);

}

p=&a[0][0];

q=a;

}

p=&a[0][0];

q=a;

for(i=0;i

{

for(j=0,p=*q;j<=l;j++,p++)

printf("%d ",*p);

printf("\n");

}

printf("下一步:\n");

for(i=0;i

{

m=a[i][0];

for(i1=i;i1

if(a[i1][0]>m)

{

m=a[i1][0];

a[i1][0]=a[i][0];

a[i][0]=m;

for(j=1;j<=l;j++)//交换其他系数

{

n=a[i1][j];

a[i1][j]=a[i][j];

a[i][j]=n;

}

}

}

for(i2=0;i2

{

imax=1;//初始化imax

for(i3=1,min=2;i3<=min;i3++)//min=2是为了保证第一次执行

{

for(j2=0;j2<=l;j2++)//寻找不为零的系数

if(a[i2][j2]!=0)

{

min=a[i2][j2];

break;

}

if(j2>l)//如果所有系数都为零

min=1;

else

{

for(j2=0;j2<=l;j2++)//找到绝对值最小的系数(零除外)

{

if(a[i2][j2]<0)

min1=-a[i2][j2];

else min1=a[i2][j2];

if(min1

min=min1;

}

for(j2=0,n1=0;j2<=l&&n1==0;j2++)//找到最大公约数

{

n1=a[i2][j2]%i3;

if(n1==0&&j2==l)

imax=i3;

}

}

if(i3>=min/2&&i3!=min)//减少循环次数

i3=min-1;

}

for(j2=0;j2<=l;j2++)//除以最大公约数

a[i2][j2]/=imax;

}

p=&a[0][0];

q=a;

for(i=0;i

{

for(j=0,p=*q;j<=l;j++,p++)

printf("%d ",*p);

printf("\n");

}

printf("下一步:\n");

for(i=0;i

{

for(i1=i+1;i1

if(a[i1][i]!=0)

{

for(j=0,m=a[i][i],n=a[i1][i];j<=l;j++)

a[i1][j]=a[i1][j]*m-a[i][j]*n;

for(i2=0;i2

{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值