现在的位置: 首页 > 综合 > 正文

二维数组__普通矩阵转换为稀疏矩阵

2018年04月29日 ⁄ 综合 ⁄ 共 478字 ⁄ 字号 评论关闭
# include<cstdio>
# include<iostream>
# include<iomanip>

const int n = 3;
const int m = 5;

using namespace std;

# define xh1 int i = 1;i <= n;i++
# define xh2 int j = 1;j <= m;j++


int main(void)
{
    int a[n+1][m+1];
    int b[101][4];//行数设置这么多的原因是因为输出的需要
    int k = 0;
    for ( xh1 )
        {
            for ( xh2 )
                {
                    cin>>a[i][j];
                }
        }
        for ( xh1 )
            {
                for ( xh2 )
                    {
                        if ( a[i][j]!=0 )
                            {//找到非零值然后存储,有几个非零元素的值,那么就会输出几行
                                k++;
                                b[k][1] = i;//稀疏矩阵某行的第一个元素
                                b[k][2] = j;//稀疏矩阵某行的第二个元素
                                b[k][3] = a[i][j]; //稀疏矩阵的第三个元素
                            }
                    }
            }
        for ( int i = 1;i <= k;i++ )
            {
                for ( int j = 1;j <= 3;j++ )
                    {
                        cout<<setw(3)<<b[i][j];
                    }
                    cout<<endl;
            }



    return 0;
}

抱歉!评论已关闭.