| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1390 人关注过本帖
标题:c语言,怎么求一个.txt文件中252*504矩阵的秩,然后再把它化为上三角矩阵, ...
取消只看楼主 加入收藏
Bingo_yue
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2016-1-10
结帖率:100%
收藏
 问题点数:0 回复次数:2 
c语言,怎么求一个.txt文件中252*504矩阵的秩,然后再把它化为上三角矩阵,大家帮忙看看,谢谢
data &上三角矩阵.rar (23.19 KB)


昨天在大神的帮助下,把矩阵转化成了252*504的稀疏矩阵,以为自己能够对其进行求秩,并上三角化,可是看了一天还是不会,自己c语言刚入门,大家能帮忙看一下吗?
谢谢了!
搜索更多相关主题的帖子: c语言 
2016-01-20 16:44
Bingo_yue
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2016-1-10
收藏
得分:0 
有哪位大神会吗?明天就要交这作业了,现在还不会,求求大神帮忙
2016-01-21 13:47
Bingo_yue
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2016-1-10
收藏
得分:0 
编了个求秩的代码  运行没错  结果不对  谁能指导一下吗

程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<cmath>


int rank( void )            //对一个252*512的矩阵求秩
{
    FILE* fin = fopen("data.txt","rt");     //打开 H矩阵.txt
    if( !fin )                               // 检查H矩阵.txt是否被打开
    {
        puts( "源文件打开失败." );
        return 1;
    }
    FILE* fout = fopen("data1.txt","wt");      //打开 data.txt
    if( !fout )
    {
        fclose( fin );
        puts( "输出文件创建失败." );
        return 2;
    }

    unsigned line_num = 0;
    unsigned row_number = -1;
    unsigned col_number = -1;
    char matrix[252][504];

    for( char line[2000]; fgets(line,sizeof(line)/sizeof(*line),fin); )  //把字符串相继的从文件fin中读入line数组
                                                                 //中从文件fin中读取sizeof(line)/sizeof(*line)-1个字符,
                                     //存到以s为起始地址的空间里,直到读完一行,如果成功则返回line的指针
    {   int i=0;
        int j=0,r;
        size_t n = strlen(line);

        if( line[n-1]!='\n' && n+1==sizeof(line)/sizeof(*line) )
        {
            fclose( fout );
            fclose( fin );
            puts( "把line[]数组开大些." );
            return 3;
        }
           for( j=0;j<sizeof(line)/sizeof(*line);matrix[i++][1000]=line[j++]) ;  //把line中的元素赋给matrix的第i行
        
           
    while(i<252 && j<504)
    {
        //找一行第一个数为一的替换
        r=i;
        for(int k=i; k<252; k++)
        {
            if(matrix[k][j])
            {
                r=k;
                break;
            }
        }
        if(matrix[r][j])
        {
            if(r!=i)
                for(int k=0; k<=504; k++) 
                {
                    int temp;
                    temp=matrix[i][k];
                    matrix[i][k]=matrix[r][k];
                   matrix[r][k]=temp;
                }
            //消元
            for(int u=i+1; u<252; u++)
            {
                if(matrix[u][j])
                    for(int k=j; k<=504; k++)
                    {
                        matrix[u][k]^=matrix[i][k];
                    }
            }
            i++;
        }
        j++;
    }
    return i;
for(j=0;matrix!='\0';j++)
     for(int k=0;matrix!='\0';line[i++]=matrix[j][k++])
          fputs(line,fout);

    fclose( fout );
    fclose( fin );

 
    }
}


[此贴子已经被作者于2016-1-23 23:26编辑过]

2016-01-23 16:32
快速回复:c语言,怎么求一个.txt文件中252*504矩阵的秩,然后再把它化为上三角矩 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047415 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved