问题 : 矩阵数字求和
题目描述
给定一个数字矩阵,数字中间用空格分开。
求:行,列,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 }
原文地址:https://www.cnblogs.com/yuming226/p/8146437.html
时间: 2024-10-08 01:10:50