Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211970
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 798
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-14 14:54
文章分类

全部博文(87)

文章存档

2015年(87)

我的朋友

分类: C/C++

2015-09-29 16:37:28

求一个矩阵中最大的n==2的二维子矩阵(元素和最大).如:
          1 2 0 3 4
          2 3 4 5 1
          1 1 5 3 0
          中最大的是:  
          4 5
          5 3

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #define N 100

  3. int main()
  4. {
  5.     int a[N][N];
  6.     int i=0, j;
  7.     int m, n, sum, max;
  8.     char ch;
  9.     int    row=0;    
  10.     int column=0;
  11.     do
  12.     {
  13.         j=0;
  14.         do
  15.         {
  16.             scanf("%d", &a[i][j++]);
  17.             ch=getchar();
  18.         }while(ch!=';'&&ch!='\n');
  19.         i++;
  20.     }while(ch!='\n');
  21.     m=i;
  22.     n=j;
  23.     
  24.     max=a[0][0]+a[1][0]+a[0][1]+a[1][1];
  25.     row=0;    
  26.     column=0;
  27.     for(i=0,j=0; i<m-1; j++)
  28.     {
  29.         sum=a[i][j]+a[i+1][j]+a[i][j+1]+a[i+1][j+1];
  30.         if(sum>max)
  31.         {
  32.             row=i;    
  33.             column=j;    
  34.             max=sum;
  35.         }
  36.         if(j+1==n-1)
  37.         {
  38.             j=0;
  39.             i++;
  40.         }
  41.     }
  42.     printf("%d %d\n", a[row][column], a[row][column+1]);
  43.     printf("%d %d\n", a[row+1][column], a[row+1][column+1]);
  44.     return 0;

  45. }

阅读(1349) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~