源代码
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
using namespace std;
template<class T>
int length(T& arr)
{
return sizeof(arr) / sizeof(arr[0]);
}
int main()
{
string sSub;
string sInput;
uint8_t sumArray1;
uint8_t sumArray2;
int hub[100];
int pos ;
string para;
int i = 0;
cout<<"please input 2*N nums:"<<endl;
getline(cin,sInput);
sInput += " ";
while(sInput.length() > 0 && sInput != " ")
{
pos = sInput.find(" ");
sSub = sInput.substr(0,pos); //截取一段数字字符
// cout<<x<<endl;
hub[i] = atoi(sSub.c_str()); //string 转 Int
i++;
sInput = sInput.substr(pos+1); //获取下一段字符串
}
int lenarr = i; //取巧获得数组的有效长度
sort(hub,hub+lenarr); //排序
for(int i = 0; i<lenarr/2; i++) //最大的与最小的一组,次大的与次小的一组,以此类推
{
if(i != 2)
{
if(i%2 == 0)
{
sumArray1 += hub[i] + hub[lenarr-1-i];
}
else{
sumArray2 += hub[i] + hub[lenarr-1-i];
}
}
else //最后两个分配
{
sumArray1 += hub[i];
sumArray2 += hub[i+1];
}
}
int res = (sumArray1>sumArray2?(sumArray1-sumArray2):(sumArray2-sumArray1));
cout<<"This is the result of the difference between two arrays: "<<to_string(res)<<endl;
return 0;
}