返回整型数组子数组和的最大值
2014-03-10 16:16
295 查看
结对组员:刘静(20092532)
解凤娇(20112878)
王洪叶(20112886)
项目:定义一个整型数组,返回该数组中子数组和的最大值!
从键盘接收到数组的数据之后,调用最大值函数 maxSum(int arr[],int length),求子函数的最大值。
下面是我们的分析过程:
要想获得子函数最大值,首先进行数组的遍历,在遍历起初,对最大值进行初始化为数组的第一个元素,每次遍历,求得该子数组的和,并将此和与最大值进行比较,若小于
最大值,则进行下一次的遍历,直到结束。此处用到三个for循环,来进行次数的控制。第一个 for(i = 0; i <length; i++),用来完成所有数组的循环,第二个for(j = i; j
<length; j++)用来表示从第几个元素开始,寻找子数组,第三个 for( k = i; k <= j; k++) ,用来获取每个子数组的和,等到遍历完全结束,返回最大值输出。
测试数据:
(1)、输入数组元素:3 6 2 8 6
应得结果:25
(2)、输入数组元素:-2 7 9 6 3
应得结果:25
(3)、输入数组元素:-4 -5 -9 -5 -3
应得结果:-3
(4)、输入数组元素:1 -2 3 10 -4 7 2 -5
应得结果:18
实验结果截图:
解凤娇(20112878)
王洪叶(20112886)
项目:定义一个整型数组,返回该数组中子数组和的最大值!
从键盘接收到数组的数据之后,调用最大值函数 maxSum(int arr[],int length),求子函数的最大值。
下面是我们的分析过程:
要想获得子函数最大值,首先进行数组的遍历,在遍历起初,对最大值进行初始化为数组的第一个元素,每次遍历,求得该子数组的和,并将此和与最大值进行比较,若小于
最大值,则进行下一次的遍历,直到结束。此处用到三个for循环,来进行次数的控制。第一个 for(i = 0; i <length; i++),用来完成所有数组的循环,第二个for(j = i; j
<length; j++)用来表示从第几个元素开始,寻找子数组,第三个 for( k = i; k <= j; k++) ,用来获取每个子数组的和,等到遍历完全结束,返回最大值输出。
测试数据:
(1)、输入数组元素:3 6 2 8 6
应得结果:25
(2)、输入数组元素:-2 7 9 6 3
应得结果:25
(3)、输入数组元素:-4 -5 -9 -5 -3
应得结果:-3
(4)、输入数组元素:1 -2 3 10 -4 7 2 -5
应得结果:18
//对于一个整型数组,求其最大子数组和 //解凤娇、王洪叶、刘静共同完成 //2014.03.10 #include<stdio.h> #include<stdlib.h> #define N 1000 /******获取最大值子函数********/ int maxSum(int arr[],int length) { int i; int j; int k; int max= arr[0]; //最大值初始化 int sum=0; //每次遍历的和初始化为0 if(arr==NULL||length<=0)//异常捕捉,数组为空的错误 { printf("没有可执行数据!"); } for(i = 0; i <length; i++)//循环遍历数组元素 { for(j = i; j <length; j++)//判断从第几个元素开始遍历 { for( k = i; k <= j; k++) { sum += arr[k]; //求和 } if(sum > max)//与最大值进行比较 { max = sum; } sum=0; } } return max; } void main() { int a ; int num; int i; int k=1; do { printf("输入数组个数:\n");//初始化数组个数 scanf("%d",&num); printf("输入%d个数,以空格区分:\n",num);//数组元素初始化 for(i=0;i<num;i++) { scanf("%d",&a[i]); } printf("最大子数组的和为:%d",maxSum(a,num));//调用子函数,返回最大值 printf("\n\n"); printf(" 1、继续 0、退出\n"); scanf("%d",&k); }while(k!=0); }
实验结果截图:
相关文章推荐
- 编写1个函数. 该函数返回1个整型数组中的最大值、最小值、平均值、累积和.
- 返回一个整型数组中最大子数组的和(02)
- 返回整型数组子数组和的最大值
- 返回一个整型数组中最大子数组的和
- 题目:返回一个整型数组中最大子数组的和—第二部
- 返回一个整型数组中最大子数组的和
- C 返回一个数组的最大项的项数
- 递归方法求整型数组中最大值
- 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 返回一个整数数组中最大子数组的和之测试
- 课堂练习-返回一个整数数组中最大子数组的和
- 软件工程课程作业(五)--返回一个整数数组中最大子数组的和(首尾相接改良版)
- 二.将整型写入字节数组中(最大四位)
- 结对开发之《返回一个二维整数数组中最大子数组的和》
- Java整型数组的最大长度到底有多长?
- 《返回一个整数数组中最大子数组的和》
- 整数数组的定义,然后输入一个整数X,假定X不在这个数组,返回小于X位置的最大数目i而超过X位置的最小数目j
- 返回一个二维整数数组中最大联通子数组的和(思路)
- 返回一个二维整数数组中最大联通子数组的和