标签:图片 http 重复 eof 一段 pen 分享 || clu
#include<iostream>
#include <stdio.h>
using namespace std;
FILE *fpRead=fopen("input.txt","r");
char cgetchar(){
char c;
fscanf(fpRead,"%c",&c);
return c;
}
int getnum(){
char c;
int num = 0, fuhao = 1;
while((c = cgetchar()) != EOF && (‘0‘ > c || ‘9‘ < c) && c != ‘-‘);
if(c == ‘-‘) fuhao = -1;
else num = c - ‘0‘;
while((c = cgetchar()) != EOF && ‘0‘ <= c && ‘9‘ >= c){
num = num * 10 + c - ‘0‘;
}
return num * fuhao;
}
int main ()
{
int x,y,i,j,m=0,A[100][100];
x = getnum();
y = getnum();
if(x>100||y>100)
{
cout<<"请重新输入:";
cin>>x>>y;
}
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
A[i][j] = getnum();
printf("%d ", A[i][j]);
}
printf("\n");
}
int sum[100]={0},max=0,result=A[0][0];
for(i=0;i<x;i++)//确定子数组的最大上界(为第i行)
{
while(m+i<x)//确定子数组有m+i行
{
//把子数组当成一位数组一样,求最大子数组的和
for(j=0;j<y;j++)
{
sum[j]=sum[j]+A[m+i][j];
}
max=0;
for(j=0;j<y;j++)
{
if(max+sum[j]>sum[j])
{
max=max+sum[j];
}
else
{
max=sum[j];
}
if(max>result)
{
result=max;
}
}
m++;//是子数组的行数+1
}
m=0;
for(j=0;j<y;j++)
{
sum[j]=0;
}
}
cout<<result;
return 0;
}
input.txt文件截图:


运行结果截图:
项目计划总结:

我和队友的合照(张洪胜 苏雄)

标签:图片 http 重复 eof 一段 pen 分享 || clu
原文地址:https://www.cnblogs.com/zhs20160715/p/9822474.html