作者:走下去就下去 | 来源:互联网 | 2023-05-18 18:15
要求:
输入一个整形数组,数组里有整数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
如果数组A[0]……A[j-1]首尾相邻,允许A[i-1],……A[n-1],A[0]……A[j-1]之和最大。
同时返回最大子数组的位置。
求所有子数组的和的最大值。
思路:循环两次,进行排除法,判断数组中每个数所构成的最大子数组,然后将数组中每个数对应的最大子数组进行判断,最后得到这个整数数组的最大子数组。
#include
#define n 100
using namespace std;
void main()
{
int a[n], b[n][n];
int length, i, j, w = 0, p = 0, q = 0, temp, m;
cout <<"输入整数数组" <> a[length];
length++;
if (getchar() == '\n')
{
break;
}
}
cout <<"这个整数数组的长度为:" <length - 1)
{
m = 0;
}
j++;
}
}
temp = b[0][0];
for (i = 0; itemp)
{
temp = b[i][j];
p = i;
q = j;
}
}
}
cout <<"最大子数组的值为:" <= length)
{
p = 0;
}
i++;
}
cout <