一、设计思路
这次扩展是在原来基础上更进一步,结合了前两次的题目,我们主要是对前两次代码的归纳总结。利用一维数组中成环的思路,加上二维数组中求得最大子数组的思路,将二维数组同第一次的一维数组一样进行变换,再求得最大子数组,以此类推,得到变换后各个数组的最大子数组的和,最后再进行比较,求得最大值。二、源代码// erweishuzuqiuzuida.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "fstream.h"#include "iostream.h"#include "stdio.h"#define MAXSIZE 50void read(int array[][MAXSIZE],int &len1,int &len2)//读取文件信息,并写入数组{ ifstream infile("array.txt"); if(!infile) cout<<"读取失败!"<>len1>>len2; for(int i=0;i >array[i][j]; } } }}void display(int array[][MAXSIZE],int len1,int len2,int size1,int size2)//显示数组信息{ for(int i=len1;i<=size1;i++) { for(int j=len2;j<=size2;j++) { cout< <<"\t"; } cout< =0;t--) { sum=0; for(p=0;p<=t;p++) { sum=sum+c[p]; } v[t]=sum; } //循环输出最大值 max=v[0]; for(t=0;t =0;i--) { k=shuchu(x,3,i); for(int r=0;r =0;i--) { l=shuchu(y,3,i); for(int r=0;r =0;i--) { k=shuchu(x,3,i); for(int r=0;r =0;i--) { l=shuchu(y,3,i); for(int r=0;r
三、运行结果截图
四、心得体会
这次实验并没有花费很多时间,因为问题见过只是变换了形式,加深了难度,但无论是二维数组还是成环后求最大子数组的和都已经在前面得到了解决,所以,只是在原有代码的基础上增添了部分代码便求得了结果。由于上次二维数组问题的解决有局限性,此次对问题的解决也不是很完善,但基本上完成了题目的要求。
五、附图