输入一个数组,求里面最大两个数之和C语言
时间: 2024-09-21 16:08:51 浏览: 37
c语言面试题之双指针两数之和-输入有序数组.zip
在C语言中,你可以使用一个简单的遍历算法来找到数组中最大两个数之和。这里有一个基本的示例:
```c
#include <stdio.h>
// 定义一个函数,输入一个整数数组和它的长度,返回最大两个数的和
int maxTwoSum(int arr[], int n) {
// 初始化两个变量,假设第一个元素是最大的,第二个次大
int max1 = arr[0], max2 = arr[1];
// 如果数组只有一个元素或两个元素,直接返回它们之和
if (n <= 2) {
return max1 + max2;
}
// 遍历数组,从第三个元素开始比较
for (int i = 2; i < n; i++) {
// 更新max1和max2
if (arr[i] > max1) {
max2 = max1;
max1 = arr[i];
} else if (arr[i] > max2 && arr[i] != max1) {
max2 = arr[i];
}
}
// 返回最大两个数之和
return max1 + max2;
}
int main() {
int arr[] = {5, -2, 10, 1, -4, 7};
int size = sizeof(arr) / sizeof(arr[0]);
int sum = maxTwoSum(arr, size);
printf("最大两个数的和是: %d\n", sum);
return 0;
}
```
在这个例子中,我们首先检查数组的长度,然后遍历数组,每次遇到比当前`max1`大的元素,就更新`max1`和`max2`。最后返回这两个最大值的和。
阅读全文