题目1001:A+B for Matrices

题目描述:

This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns.

输入:

The input consists of several test cases, each starts with a pair of positive integers M and N (≤10) which are the number of rows and columns of the matrices, respectively. Then 2*M lines follow, each contains N integers in [-100, 100], separated by a space. The first M lines correspond to the elements of A and the second M lines to that of B.

The input is terminated by a zero M and that case must NOT be processed.

输出:

For each test case you should output in one line the total number of zero rows and columns of A+B.

样例输入:
2 2
1 1
1 1
-1 -1
10 9
2 3
1 2 3
4 5 6
-1 -2 -3
-4 -5 -6
0
样例输出:
1
5

----------------------------------------------------------------------------------------------------------------------------------------

思路:

  • 结束以输入m==0为条件,所以可以先输入m,对起进行判断是否为0,为0则跳出循环
  • 用二维数组进行存储行列数据,并且需要用到两个二维数组。将两个二维数组的值加入其中一个数组,对其每一行,每一列进行判断是否都为0,是的话则统计量num++

------------------------------------------------------------------------------------------------------------------------------------------

代码:

 1 #include<stdio.h>
 2 int main(int argc, char const *argv[])
 3 {
 4     int i,j,m,n,num,flag;
 5     int arr1[10][10],arr2[10][10];
 6     while(scanf("%d",&m)!=EOF)
 7     {
 8         if (m==0)
 9             break;
10         scanf("%d",&n);
11         for (i = 0; i < m; ++i)
12             for(j=0;j<n;++j)
13                 scanf("%d",&arr1[i][j]);
14         for (i = 0; i < m; i++)
15             for(j=0;j<n;++j)
16                 scanf("%d",&arr2[i][j]);
17             num=0;
18         for(i=0;i<m;i++)
19             for(j=0;j<n;j++)
20                 arr1[i][j]=arr1[i][j]+arr2[i][j];
21         for(i=0;i<m;i++)
22         {
23             flag=1;
24             for(j=0;j<n;j++)
25             {
26                 if(arr1[i][j]!=0)
27                 {
28                     flag=0;
29                     break;
30                 }
31             }
32             if(flag)
33                 num++;
34         }
35         for(j=0;j<n;j++)
36         {
37             flag=1;
38             for(i=0;i<m;i++)
39             {
40                 if(arr1[i][j]!=0)
41                 {
42                     flag=0;
43                     break;
44                 }
45             }
46             if(flag)
47                 num++;
48
49         }
50         printf("%d\n",num);
51     }
52     return 0;
53 }

题目1001:A+B for Matrices,布布扣,bubuko.com

时间: 2024-12-19 20:24:26

题目1001:A+B for Matrices的相关文章

9度oj 题目1001:A+B for Matrices【水题】

题目1001:A+B for Matrices 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:13653 解决:5575 题目描述: This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns. 输入: The input consists of several test cases, each st

九度oj 1001 A+B for Matrices 2011年浙江大学计算机及软件工程研究生机试真题

题目1001:A+B for Matrices 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:15235 解决:6172 题目描述: This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns. 输入: The input consists of several test cases, each st

九度OJ 1001 A+B for Matrices

题目1001:A+B for Matrices 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:14669 解决:5996 题目描述: This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns. 输入: The input consists of several test cases, each st

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

今天刷的题目是1001,题目用英文给出,但不难解读. 题目的意思是说,输入两个矩阵A和B(二者彼此的行数相同,列数相同),进行矩阵加法得到A+B,统计A+B矩阵中零行和零列的数量. 思路: 首先是计算A+B,这个不难,可以用二维数组实现. 其次是统计零行和零列,先明确概念,零行指的是整个行的每个数都为0的行,零列指的是整个列里的每个数都为0的列.那么我们只须分行和分列对数组进行遍历. 代码如下: C++版本 #include<iostream> #include<stdio.h>

NYOJ题目1001的个数

------------------------------------------- 感觉我脑洞太飘逸了...O(∩_∩)O哈哈~ 坚决不重复造轮子. AC代码: 1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 Scanner sc=new Scanner(System.in); 8 int times=sc.nextInt(); 9 whi

九度OJ-1001-A+B矩阵-有些小技巧

题目1001:A+B for Matrices 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:22974 解决:9099 题目描述: This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns. 输入: The input consists of several test cases, each st

编译原理的一些练习题

这里收集了sicily的陈炬桦老师编译原理实验课程的题目,曝上代码以供参考. (如果这里的代码对您的思路有些许启发的话,请您点击一下推荐,给予作者写作的鼓励,不胜感谢!) 1-词法分析 题目1000: 1 1000. 词法分析程序设计 2 总提交数量: 183 通过数量: 138 3 4 时间限制:1秒 内存限制:256兆 5 题目描述 6 设一语言的关键词.运算符.分界符的个数与单词如下: 7 struct { int number; string str[10]; } keywords={3

HOJ 题目分类

转自:http://blog.sina.com.cn/s/blog_65f3869301011a1o.html ******************************************************************************* 简单题(包括枚举,二分查找,(复杂)模拟,基础数据结构(栈.队列),杂题等 ****************************************************************************

paste 乙级 1001

1001. 害死人不偿命的(3n+1)猜想 (15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业