⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 林政-5分.txt

📁 这是很不错的计算机算法
💻 TXT
字号:
//
//学号:040000103
//姓名:林政
//
#include < iostream.h > 
#include < fstream.h >
#include < stdio.h > 
ofstream out_file("output.txt"); //输出文件
int MaxSum(int n,int * a);
int MaxSum2(int m,int n,int * * a);
//////////////////////////////////////////////////
void main()
{
    int i , j; //循环变量
    int m , n; //矩阵行、列
    int * * a ; //序列x

    ifstream in_file("input.txt",ios::nocreate); //读取文件
    if (in_file.fail())
    {
	cerr << " 文件读取错误!";
	return; //如果没有输入文件,则返回错误
    }

    in_file >> m >> n ; //读取矩阵行、列
    m = m + 1;
    n = n + 1;
// 
// 读取数字到序列a中 
// 
    a = new int * [m];
    for (i = 1;i < m; i++) 
    {
	a[i] = new int[n];
	for (j = 1 ; j < n ; j++) 
	{
	    in_file >> a[i][j];
	}
    }
//  end读取序列
    out_file << MaxSum2(m-1,n-1,a) << endl;
    for (i = 1; i < m; i++) delete[] a[i];
}
//////////////////////////////////////////////////
int MaxSum(int n,int * a)
{
    int sum = 0;
    int b = 0;
    for (int i =1;i <= n;i++)
    {
	if (b > 0) b+= a[i];
	else b = a[i];
	if (b > sum) sum = b;
    }
    return sum;
}
//////////////////////////////////////////////////
int MaxSum2(int m,int n, int * * a)
{
    int sum = 0;
    int * b = new int[n+1];
    for (int i = 1;i <= m;i++)
    {
	for (int k = 1;k <= n;k++) b[k] = 0;
	for (int j = i;j <= m;j++) 
	{
	    for (int k =1;k <= n;k++)
	    {
		b[k] += a[j][k];
	    } 
	    int max = MaxSum(n,b);
	    if (max > sum) sum = max;
	}
    }
    return sum;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -