首页 新闻 会员 周边

【求助】系数矩阵的系数因子无法求得

0
悬赏园豆:5 [已解决问题] 解决于 2015-08-17 15:35

问题如下

不知道为什么 我有一个求稀疏因子的函数,但是每次输出都输出不了,我是本科生

想慢慢研习C++一步一步的实验  所以希望 有这几点:

  一、希望大神们能找到我的问题所在 为什么稀疏矩阵的稀疏因子无法求得

  二、我的C++编程风格有什么需要改进的么?

  三、出现的问题我需要在加强哪方面的学习才能改善?

  四、希望能给我一点支持 我会长期在这里提问  加强自己的实验能力

    谢谢大家了!

    代码如下:

  1         #include <iostream>
  2         using namespace std;
  3 /*  按照压缩储存的观念,我们对于稀疏矩阵进行只存贮 非零元,因此,除了储存非零元的值之外
  4     我们还要几下非零元的行列(i,j)。
  5     反之,一个三元组(i,j,a[i][j])唯一确定了矩阵A的一个非零元。
  6 
  7     实验目的:
  8         实现三元组压缩储存一个定义的稀疏矩阵
  9         计算稀疏矩阵稀疏因子
 10         计算三元组和稀疏矩阵的压缩比例
 11     实验步骤:
 12         构造稀疏矩阵 然后进行压缩储存 并输出
 13 */    
 14         #define SIZE 10
 15         #define TRUE 1
 16         #define error 0
 17         int sparse_matrix[SIZE][SIZE],m,count;
 18         int i,j;
 19         int k;
 20         int input(){
 21             cout<<"please input the size of the sparse matrix (m<10)"<<endl;
 22             cin>>m;
 23             while (m>=10){
 24                 cout<<"input data error,please insure the num less than 10 "<<endl;
 25                 cin>>m;
 26             }
 27             for(i=0;i<m;i++)
 28                 for(j=0;j<m;j++){
 29                     cout<<"sparse_matrix["<<i<<"]["<<j<<"]=...";
 30                     cin>>sparse_matrix[i][j];
 31                 }
 32             
 33             return TRUE;
 34         }
 35 
 36 
 37 
 38         int print_matrix(){
 39             cout<<endl;cout<<"sparse_matrix as fallow "<<endl;
 40             for(i=0;i<m;i++){
 41                 for(j=0;j<m;j++){
 42                     cout<<sparse_matrix[i][j]<<" | ";
 43                 }
 44                 cout<<endl;
 45             }
 46 
 47             return TRUE;
 48         }
 49         
 50         /*double calculate_sparse_factor(){
 51             for(i=0;i<m;i++){
 52                 for(j=0;j<m;j++){
 53                     if(sparse_matrix[i][j]!=0){
 54                         count++;
 55                     }
 56                 }
 57             }
 58 
 59             return (count/(m*m));
 60         }*/
 61         typedef struct{
 62             int i,j;
 63             int e;
 64         }Triple;
 65         Triple tri[100];
 66         int compress(){
 67             for(i=0;i<m;i++){
 68                 for(j=0;j<m;j++){
 69                     if(sparse_matrix[i][j]!=0){
 70                         tri[k].i=i;
 71                         tri[k].j=j;
 72                         tri[k].e=sparse_matrix[i][j];
 73                         k++;
 74                     }
 75                 }
 76             }
 77             return TRUE;
 78         }
 79         int print_tri(){
 80             cout<<endl;
 81             cout<<"tri is 。。。。。"<<endl;
 82             cout<<"___________"<<endl;
 83             cout<<"i | j | e |"<<endl;
 84             cout<<"-----------"<<endl;
 85             for(i=0;i<k;i++){
 86                 cout<<tri[i].i<<" | "<<tri[i].j<<" | "<<tri[i].e<<" | "<<endl;
 87             }    
 88             return TRUE;
 89         }
 90 
 91         int main(){
 92             cout<<count<<endl;
 93             input();//输入稀疏矩阵
 94             print_matrix() ;//输出稀疏矩阵
 95             compress();//压缩稀疏矩阵            
 96             print_tri();//输出三元组
 97             //cout<<"calculate_sparse_factor =....."<<endl;                                     //////////////!!!!!!!!!!!!整形除以整形的问题???
 98             return TRUE;
 99         }
100 
101         
102         
系数矩阵的三元组压缩储存以及稀疏因子的求值
think_D的主页 think_D | 初学一级 | 园豆:176
提问于:2013-11-06 00:18
< >
分享
最佳答案
1

推荐使用数学库

收获园豆:5
迅捷网络[来送福利] | 小虾三级 |园豆:578 | 2013-11-06 09:53
其他回答(1)
0

i,j,k......内流满面啊,多看看优化和健壮吧

iEvent | 园豆:529 (小虾三级) | 2013-11-06 08:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册