题目描述:
示例代码:
// mini_max_sum.cpp: 定义控制台应用程序的入口点。
//
// give sum which any four of five nums
// print mini and max sum
//
#include "stdafx.h"
#include <windows.h>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
void miniMaxNum( vector<int>arr )
{
//方案1
/*
long int sum1 = 0;
long int sum2 = 0;
sort( arr.begin(), arr.end() );
sum1 = arr[0] + arr[1] + arr[2] + arr[3];
sum2 = arr[1] + arr[2] + arr[3] + arr[4];
printf( "%ld %ld", sum1, sum2 );
//eg:
//256741038 623958417 467905213 714532089 938071625
//not 2063136757 2744467344
*/
//方案2
//最大值:所有数之和减去最小值元素
//最小值:所有数之和减去最大值元素
int small1, large;
long int sum = 0;
small1 = arr[0];
large = arr[0];
for (int arr_i = 0; arr_i < 5; arr_i++) {
if (small1 > arr[arr_i])
small1 = arr[arr_i];
if (large < arr[arr_i])
large = arr[arr_i];
sum = sum + arr[arr_i];
}
printf("%ld %ld", sum - large, sum - small1);
}
int main()
{
vector<int> arr( 5 );
for( int arr_i = 0; arr_i < 5; arr_i++ )
{
cin >> arr[arr_i];
}
miniMaxNum( arr );
system( "pause" );
return 0;
}
// mini_max_sum.cpp: 定义控制台应用