十六:矩阵数字求和

Posted 玉汝于成

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十六:矩阵数字求和相关的知识,希望对你有一定的参考价值。

问题 : 矩阵数字求和
题目描述

给定一个数字矩阵,数字中间用空格分开。 
求:行,列,45°斜线(不一定是对角线) 中,和最大的是多少 
输出:这个最大的和. 
比如矩阵 
9 8 2 2 
2 4 1 5 
1 5 1 2 
1 15 6 3 
2 1 56 3 
中,和最大的是 1 15 56 这个斜线。需要输出:72
输入
第一行两个数,表示矩阵的行、列。行列的数字均小于10
之后是矩阵
输出
一个数字,即最大的和是多少
样例输入
5 4
9 8 2 2
2 4 1 5
1 5 1 2
1 15 6 3
2 1 56 3
样例输出

72

 1 #include<stdio.h>
 2 #include<string.h>
 3 int main(){
 4     freopen("in.txt", "r", stdin);
 5     freopen("out.txt", "w", stdout);
 6     int a[11][11];
 7     int row,col;
 8     int i,j,m=0,sum=0,b=0;
 9     scanf("%d %d",&row,&col);
10     for(i=0;i<row;i++){
11         for(j=0;j<col;j++){
12             scanf("%d",&a[i][j]);
13         }
14     }
15     for(i=0;i<row;i++){
16         for(j=0;j<col;j++){
17                 sum=0;
18                 b=0;
19                 while(i+b<row){
20                 sum+=a[i+b][j];
21                 b++;
22             }
23             if(sum>m){
24                 m=sum;
25             }
26                 sum=0;
27                 b=0;
28                 while(j+b<col){
29                 sum+=a[i][j+b];
30                 b++;
31             }
32             if(sum>m){
33                 m=sum;
34             }
35             sum=0;
36             b=0;
37             while(i+b<row&&j+b<col){
38                 sum+=a[i+b][j+b];
39                 b++;
40             }
41             if(sum>m){
42                 m=sum;
43             }
44             b=0;
45             sum=0;
46             while(i-b>=0&&j+b<col){
47                 sum+=a[i-b][j+b];
48                 b++;
49             }
50             if(sum>m){
51                 m=sum;
52             }
53             
54         }
55     }
56     printf("%d",m);
57     fclose(stdin);
58     fclose(stdout);
59     return 0;
60 }

 

以上是关于十六:矩阵数字求和的主要内容,如果未能解决你的问题,请参考以下文章

sum()函数——MATLAB

计蒜客 蓝桥模拟 A. 结果填空:矩阵求和

矩阵求和

python数组求和

Gauss Fibonacci HDU - 1588 等比矩阵列求和

求一个3*3的整形矩阵对角线元素之和