题目描述:给你一个n行m列的矩阵,判断他是不是稀疏矩阵,稀疏矩阵中零的个数超过矩阵中总元素个数的一半。 输入描述: 第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)
从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数
输出描述: 一行,如果该矩阵是稀疏矩阵输出"YES",否则输出"NO"。
程序:#include #include #include<limits.h> using namespace std; int main() { int a[100][100]={0},n,m,sum=0; cin>>n>>m; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cin>>a[i][j]; } } for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(a[i][j]==0) { sum++; } } } if(sum>nm/2) { cout<<"YES"<<endl; }else cout<<"NO"<<endl; return 0; } 本题同样还是先输入矩阵,然后定义一个sum=0,如果发现0sum就进行自增,最后让sum的值与nm/2进行比较,如果是大于则输出yes,小于输出no。