计算一个整形数组里的连续元素和的最大值
例:{9, -12, 120, 8, -20, 100, 30, -89, 20}
结果是{120, 8 , -20, 100, 30}的和最大,为 238
函数声明:
int max_sum(int *array, int array_len);
#include<stdio.h>
#define N 10
// 只要结果
int a[N];
int max_sum ( int *array, int array_length ) {
int tags = 0;
int max, i, j, k, m;
for (i = 0; i < array_length; i++ ) {
max = 0;
for ( j = i; j < array_length; j++ ) {
max += array[j];
if ( tags < max || tags == 0 ) {
k = i;
m = j;
tags = max;
}
}
}
printf ("the max sum is %3d ,from %3d to %3d\n",tags,k+1,m+1 );
}
main () {
int i;
int *p;
for (p = a; p < a+ N; p++ )
scanf ("%d",p);
p = a;
max_sum ( p, N );
}
优化:最大序列肯定是以正数开始 正数结束。如果全是负数就求最大值 先从左边遍历找出第一个正数 同时记录最大值。
分享到:
相关推荐
输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,...
在IT行业的算法领域,计算整形数组中第k小的数是一个经典的编程问题,它涉及到排序、查找等基础知识,是衡量一个程序员基本功的重要指标之一。本文将深入解析这一知识点,包括其背后的算法原理、实现方法以及优化...
定义20个元素的整形数组赋值。输入一个数如果该数在数组中存在,删除该数。其后的每个数前移一位。最后补0;
整形数组存储整数值,如int,通常用于计算和逻辑操作。而字符数组,即无符号字符数组(uchar array),通常用来表示文本数据或者二进制数据,如图像或音频流。在C/C++中,uchar(unsigned char)是一种8位无符号整型...
标题中的“将两个有序数组,合并成另一个有序的数组,升序”是一个经典的算法问题,常见于计算机科学和编程领域,特别是在数据结构和算法的学习中。这个问题的目标是将两个已经按照升序排列的整数数组合并成一个新的...
本示例将指导你如何定义一个一维数组,并求出该数组的最大值、最小值以及平均值。以下是一个详细的步骤和代码实现: 1. **定义一维数组**: 在Java中,一维数组是一个有序的数据集合,元素可以通过索引来访问。...
C语言程序设计-编写程序。...⑴求出这8个数据的和、最大值、最小值及平均值。 ⑵求这8个数据的正数之和、负数之和(或正数与负数的个数); ⑶求这8个数据的奇数之和、偶数之和(或奇数与偶数的个数)。
1. **初始化结果数组**:创建一个与 `arr1` 和 `arr2` 同样大小的新数组 `result`,所有元素初始化为0。 2. **遍历数组**:使用两个循环,外层循环遍历 `arr1` 的每个元素,内层循环遍历 `arr2` 的每个元素。每次内...
本问题涉及的是两个已按升序排列的整数数组A和B的合并,目标是将它们合并到一个新的数组C中,同时确保C也按升序排列,并且在合并过程中去除重复的元素。下面将详细探讨这个过程的实现方法。 首先,我们要明确合并两...
在C语言程序中定义一整形数组,输入数组的各个元素;用汇编语言子程序求数组元素的平均值及小于此值的元素个数。最后在C程序中显示平均值和小于此值的元素个数。 郑旅军原创,谢绝抄袭!!
计算一个数组中前2.3.4.5.。。。。。sizeof(array)的最近距离,使用了动态规划算法,欢迎各位下载,手机模拟端亲测,
给定两个整型数组,本题要求找出不是两者共有的...题目保证至少存在一个这样的数字。同一数字不重复输出。 输入样例: 10 3 -5 2 8 0 3 5 -15 9 100 11 6 4 8 2 6 -5 9 0 100 8 1 输出样例: 3 5 -15 6 4 1
- 描述:利用随机数初始化一个`N * N`的矩阵,并计算矩阵正、负对角线元素的和。 - 关键知识点: - 输入输出操作:无需输入,使用`printf`输出结果。 - 随机数生成:使用`rand`函数生成随机数。 - 数组操作:...
定义20个元素的整型数组并赋初值。输入一个数,如果该数在数组中存在,则删除该数,其后的每个数前移一位,最后补0。
实验1 整形数组元素求和实验1计算面积实验2 computer类 继承实验2 computer类 友元实验2 CPU类实验2 P实验3 animal实验3 BaseClass实验3 vehicle等代码文件
数组a中已存有互不相同的10个整数从键盘输入一个整数,找出与该值相同的数组元素下标。 (如果没找到,输出“没找到”).c
定义了一个整形数组,数组名为a,此数组有6个元素。 在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。例如,int a[6];定义了一个整形数组,数组名为a,此数组有6个...
字符数组
定义一个一维整形数组num[50],输入正整数m、n(2≤m≤n≤7),输入一个m*n整形矩阵(值小于100),编写函数place()完成矩阵元素S型放置,从小到大排列,使用指针完成地址传递,主函数完成数组输入和输出。...