题目要求:
#include<iostream> #define maxnum 100 using namespace std; FILE * input; int main() { int list[maxnum][maxnum]; int l,c; input=fopen("input.txt","w"); cout<<"请输入数组的行数:"<<endl; cin>>l; fprintf(input,"%d\n",l); cout<<"请输入数组的列数:"<<endl; cin>>c; fprintf(input,"%d\n",c); for(int h=0;h<l;h++) { for(int k=0;k<c;k++) { cin>>list[h][k]; fprintf(input,"%d,",list[h][k]); } fprintf(input,"\n"); } int sum[maxnum],sumk=0; int max=list[0][0]; //初始化sum[] for(int z=0;z<l;z++) { for(int j=0;j<c;j++) { sum[j]=0; } for(int i=z;i<l;i++) { for(int j=0;j<c;j++) { sum[j]=sum[j]+list[i][j]; } for(int m=0;m<l;m++) { sumk=0;//初始化sum for(int n=m;n<c;n++) sumk=sumk+sum[n]; if(max<sumk) { max=sumk; } } } } cout<<"数组中最大的子数组的和为:"<<max<<endl; fclose(input); return 0; }
二维数组的子数组和最大问题(李帅 张硕),布布扣,bubuko.com
原文:http://www.cnblogs.com/ls110220/p/3612062.html