# 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; }