#include <stdio.h>
void main()
{
double a[10][10],f=1.0,z,k;
int i,j,n,s,q,p,b;
printf("请输入n阶矩阵:");
scanf("%d",&n);
s=n*n;
printf("请输入%d个整数",s);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%lf",&a[i][j]);//进行了N阶矩阵的输入
if(a[0][0] != 1)
{
k=a[0][0];
for(q=0;q<n;q++)
a[0][q]=a[0][q]/k;
}//从这开始第一行不管了
/*for(i=0;i<n;i++)
for(j=0;j<n;j++)
printf("%lf",a[i][j]);*/
for(j=0;j<n-1;j++)
for(i=j+1;i<n;i++)
{
/* if(a[i][j] != 0)
{*/printf("被除数%lf\n",a[i][j]);
printf("除数%lf\n",a[j][j]);
z=a[i][j]/a[j][j];//计算r前面的系数
printf("系数为%lf",z);
for(b=0;b<n;b++)
a[i][b]=a[i][b]-z*a[j][b];
}
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<n;j++)
printf("%lf",a[i][j]);
}
/*for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<n;j++)
printf("%lf",a[i][j]);
}*/
/* } */
//应该是将下三角全变为0
for(p=0;p<n;p++){
printf("\n%lf",a[p][p]);
f=a[p][p]*f;}
printf("\n结果为%lf",f);
}
这个是因为我大一学线性代数的时候对于线性代数的算法感兴趣自己做的,后来学完现代才发现是个鸡肋,有兴趣的可以看看。
用c语言进行阶乘运算
最新推荐文章于 2023-08-13 18:37:11 发布