您的位置:首页 > 其它

返回一个整数数组中最大子数组的和

2015-04-02 18:07 190 查看
设计思路 :原本打算利用指针创建数组,然后根据for语句一次求出各个数组的和,后来感觉

这样做太复杂,只能求助荣道,利用他的思路,直接计算各个数组的和,再与最大值比较。

项目计划总结
姓名:张少朋日期:2015/3/24
找突破口设计思路编程总结心得
星期六60分钟20分钟00
星期日030分钟30分钟0
星期一045分钟10分钟
代码:

#include<iostream>
#include<ctime>

using namespace std;

void main()

{

int a[10];

int f;

int i, j, k;

int sum, max = -100;

int m, n;

cout << "请输入数值范围:";

cin >> f;

srand((unsigned)time(NULL));

for (i = 0; i<10; i++)

{

a[i] = (rand() % 2 ? -1 : 1)*rand() % f;

cout << a[i] << "   ";

}

cout << endl;

for (i = 0; i<10; i++)

{

for (j = 0; j <= i; j++)

{

sum = 0;

for (k = j; k <= i; k++)

sum = sum + a[k];

if (sum>max)

{

max = sum;

m = j;

n = i;

}

}

}

cout << "子数组的最大值为:" << max << endl;

cout << "子数组是第" << m + 1 << "个数,到第" << n + 1 << "个数。" << endl;

cout << "子数组是:";

for (i = m; i <= n; i++)

{

cout << a[i] << "  ";

}

cout << endl;

}


截图结果:



个人总结:取的最大值没有在数组循环当中,m,n的取值为i,j。编程需要的是耐心,只有细节才能决定一切,不能只知道大概就以为自己学会了,引以为戒。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐