c语言中这么找中秋位数,大家中秋快乐 小弟想求一算法

这是在Visual C++6.0环境下编写的,如果要在Turbo C中运行,可要自己多改几下,否则会不知道如何用哦!

#include

#include

#define N 100

#define TOTEL 1e-6

void main( )

{

int i,j,k,n;

double a[N][N],sum,t;

printf("请输入系数矩阵的阶数:");

scanf("%d",&n);

printf("请输入增广矩阵:\n");

for(i=0;i

for(j=0;j

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

for(k=0;k

{

for(i=k+1;i

if(fabs(a[i][k])>fabs(a[k][k])) // 使得a[k][k]为a[i][k](k<=i

for(j=0;j

{

t=a[k][j];

a[k][j]=a[i][j];

a[i][j]=t;

}

if(fabs(a[k][k])

{

printf("对不起,在消去过程中的第%d步因a[%d][%d]足够小而推出!\n",k+1,k,k);

return;

}

for(i=k+1;i

{

a[i][k]=a[i][k]/a[k][k]; // a[k][k]...a[k][j]

for(j=k+1;j

a[i][j]-=a[i][k]*a[k][j];

}

}

if(fabs(a[n-1][n-1])

{

printf("对不起,在消去过程中的第%d步因a[%d][%d]足够小而推出!\n",n,n-1,n-1);

return;

} // 最后一步的主对角线上之元亦不能足够小

a[n-1][n]/=a[n-1][n-1]; //x[n];

for(k=n-2;k>=0;k--) // a[k][k]*x[k]+a[k][k+1]*x[k+1]+...+a[k][n-1]*x[n-1]=a[k][n]通过递推而求

{

sum=0;

for(j=k+1;j

sum+=a[k][j]*a[j][n];

a[k][n]=(a[k][n]-sum)/a[k][k]; // 用a[k][n]表示第k个未知数的值

}

printf("通过列主元Gauss消元法解得:\n");

for(k=0;k

printf("x[%d]=%lf\n",k+1,a[k][n]);

}

编译运行如下:

请输入系数矩阵的阶数:5

请输入增广矩阵:

1 4 3 5 2 2

4 2 3 5 2 4

4 3 5 2 3 3

8 4 3 8 2 5

5 2 3 45 3 6

通过列主元Gauss消元法解得:

x[1]=0.539130

x[2]=-0.191304

x[3]=-6.681159

x[4]=-0.257971

x[5]=11.779710

Press any key to continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值