加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

求矩阵的秩的代码

(2013-03-27 22:18:58)
标签:

左上

大神

部分

行列

代码

分类: 编程博文
本代码完全有个人编写,其中有一部分的代码还有一点小小的问题,若某位大神看见了,请帮忙挑出来,谢谢啦!
此代码可以计算行列式的秩,将你要计算的矩阵从第一行自左向右依次输入
#include
#define N 10
#define M 10
main()
{int i,j,k,s;
 float a[N][M],b[N][M];
 printf("请依次输入您所要计算的矩阵的元素:\n");
     for(i=0;i
         for(j=0;j
         {
             scanf("%f",&a[i][j]);从左上角至右输入矩阵的元素
         }
     for(k=0;k
     {
         for(i=k+1;i
             for(j=k;j
                 b[i][j]=a[i][j]-(a[k][j]*(a[i][k]/a[k][k]));将变换后的值存入数组b
                 for(j=0,s=0;j
                 s=s+(b[k+1][j]==0?1:0);
                        if(s==M)若此时整行全为零,则将后面的数全部化为零,并输出矩阵的秩
                         {
                             for(i=k+2;i
                                 for(j=0;j
                                      b[k+2][j]=0;
                        }
                            for(i=1;i
                                for(j=0;j
                                    a[i][j]=b[i][j];
     }
     for(j=0;j
         b[0][j]=a[0][j];将不在数组b中的a中的第一行数赋值给b
     for(i=0;i
     {
         for(j=0;j
             printf("%f\t",b[i][j]);
         printf("\n");
     }
     if(s==M)
          printf("矩阵的秩为:%d\n",k+1);
     else printf("矩阵的秩为:%d\n",N);
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有