码迷,mamicode.com
首页 > 其他好文 > 详细

九度OJ平台练习(二)—— 题目1001

时间:2016-05-14 18:46:19      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

今天刷的题目是1001,题目用英文给出,但不难解读。

技术分享

题目的意思是说,输入两个矩阵A和B(二者彼此的行数相同,列数相同),进行矩阵加法得到A+B,统计A+B矩阵中零行和零列的数量。

思路:

首先是计算A+B,这个不难,可以用二维数组实现。

其次是统计零行和零列,先明确概念,零行指的是整个行的每个数都为0的行,零列指的是整个列里的每个数都为0的列。那么我们只须分行和分列对数组进行遍历。

代码如下:

C++版本

#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
    int m,n;
    while(cin>>m){
        if(m == 0)break;//根据题目要求和样例,当m为0时,表示输入结束,退出
        cin>>n;
        int p[10][10];
     //输入矩阵A
for(int i = 0; i < m; i++) for(int j = 0; j < n; j++) cin>>p[i][j];
     //输入矩阵B,并直接加到矩阵A上,得到A+B
for(int i = 0; i < m; i++) for(int j = 0; j < n; j++){ int temp; cin>>temp; p[i][j] += temp; }
int num = 0;//统计零行和零列 for(int i = 0; i < m; i++){ int j = 0; for(; j < n; j++){ if( p[i][j] != 0) break;//只要发现有一个数不是0,即break } if( j == n) num++;//判断是否因发现非0的数而被break }
     for(int j = 0; j < n; j++){ int i = 0; for(; i < m; i++){ if( p[i][j] != 0)break; } if( i == m) num++;
} printf(
"%d\n",num); } return 0; }

 

九度OJ平台练习(二)—— 题目1001

标签:

原文地址:http://www.cnblogs.com/mudao/p/5492974.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!