黑白图像直方图“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛

xiaoxiao2021-02-28  106

黑白图像直方图

发布时间: 2017年7月9日 18:30   最后更新: 2017年7月10日 21:08   时间限制: 1000ms   内存限制: 128M

描述

在一个矩形的灰度图像上,每个像素点或者是黑色的或者是白色的。黑色像素点用 1 表示,白色像素点用 0 表示。现在要求你编写一个程序,计算每列上黑色像素点的个数并输出。如下图所示是一个 68 的黑板图像。 

1 1 0 0 1 1 1 1  0 1 1 0 1 0 1 0  1 1 1 1 0 1 1 0  0 1 1 0 0 1 0 0  1 0 1 0 0 1 0 0  0 1 0 1 0 1 1 0 

输入

输入有多组组。 每组的第一行有 2 个整数 m n ,( 1<=m n<=100 )。 接着有 m 行,每行有 n 个数字,每个数字是 0 1 ,之间用一个空格分开。

输出

对图像数据,依次一行输出图像中每列黑色像素点的总数。

样例输入1  复制 3 5 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 6 8 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 样例输出1 2 3 2 1 2 3 5 4 2 2 5 4 1 选择语言 想法:水题 代码: #include<bits/stdc++.h> using namespace std; int a[110][110]; int main() {     int n,m;     while(scanf("%d %d",&n,&m)!=EOF)     {       for(int i=0;i<n;i++)       {           for(int j=0;j<m;j++)           {               scanf("%d",&a[i][j]);           }       }       for(int i=0;i<m;i++)       {           int count=0;           for(int j=0;j<n;j++)           {               if(a[j][i]==1)                 count++;           }           if(i==m-1) printf("%d\n",count);           if(i!=m-1) printf("%d ",count);       }     }     return 0; }
转载请注明原文地址: https://www.6miu.com/read-45252.html

最新回复(0)