【问题标题】:Finding maximum sum possible of two numbers in array查找数组中两个数字的最大可能和
【发布时间】:2019-04-10 16:56:22
【问题描述】:

"-1 7 8 -5 4" 这是我们必须找到两个整数的最大交替和的数组。例如,对于这个数组,输出应该是 8+4=12,因为数组从索引 0 开始,增量应该是 2

【问题讨论】:

  • 欢迎来到 SO。这个问题没有明确说明要求是什么,也没有显示出任何自己解决问题的努力。请参阅How to Ask
  • 取两个最大值并求和?

标签: c arrays sorting


【解决方案1】:

根据假设提供的数组大小和数组数据类型为整数等少数条件,您可以使用以下程序作为参考。 这个程序没有。元素和数组作为输入。

#include<stdio.h>
#include<limits.h>

int main(){

    int n;
    int a[100];
    printf("Size of the array:");
    scanf("%d", &n);
    for(int i = 0; i < n; i++){
        printf("Enter array element a[%d]:", i);
        scanf("%d", &a[i]);
        printf("\n");
    }

    int max = INT_MIN;
    int sum = 0, k = 0, l = 0;
    for(int i = 0; i < n-2; i++){
        sum = a[i] + a[i+2];
        if(max < sum){
            max = sum;
            k = i;
            l = i+2;
        }
    }
    printf("max sum is: %d using index: a[%d] and a[%d]\n", max, k, l);
}

输入

5

-1 7 8 -5 4

输出

最大和为:12 使用索引:a[2] 和 a[4]

【讨论】:

  • 最大和为 7+8=15。您的代码似乎做了一些与问题完全无关的事情。
  • 总和应该是备用索引(正如问题所暗示的那样相差两个),这就是为什么不能考虑 7 和 8 的原因。 7 必须与 -5 相加,因为索引的差异为 2,但事实证明 7-5 = 2 不是最大和。
猜你喜欢
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 2021-03-09
相关资源
最近更新 更多