#include "stdafx.h"
#include <vector>
#include <valarray>
#include <algorithm>
#include <iostream>
using namespace std;
const int MAX_COUNT = 100;
vector<int> result[MAX_COUNT];
void sort(int *pData, int len)/*排序*/
{
for(int i=0;
i<len-1;
i++)
for(int j=i+1;
j<len;
j++)
if(pData < pData[j])
{
int tmp = pData;
pData = pData[j];
pData[j] = tmp;
}
}
int sumVal;
void sum(int val)/*求和*/
{
sumVal += val;
}
int find_min_col(vector<int> *pArr, int n)/*找最小的行*/
{
sumVal = 0;
for_each(pArr[0].begin
(), pArr[0].end(), sum);
int ret = 0, oldVal = sumVal;
for(int i=1;
i<n;
i++)
{
sumVal = 0;
for_each(pArr.begin
(), pArr.end(), sum);
if(sumVal < oldVal)
{
ret = i;
oldVal = sumVal;
}
}
return ret;
}
void dispatch(int *pData, int len, int n)/*分组*/
{
sort(pData, len);
for(int i = 0;
i < len;
i++)
{
int index = find_min_col(result, n);
result[index].push_back(pData);
}
}
void disp(int val)
{
cout << val << ' ';
}
#include <time.h>
int main(int argc, char* argv[])
{
int data[10];
srand(time(NULL));
for(int i = 0;
i < 10;
i++)/*控制数的多少,取数*/
{
data = rand() % 100;
}
dispatch(data, 10, 3);
int allsum = 0;
for(i=0;
i<3;
i++)
{
sumVal = 0;
for_each(result.begin
(), result.end(), sum);
allsum += sumVal;
cout << "/n" << sumVal << " ";
for_each(result.begin
(), result.end(), disp);
}
cout << endl << allsum / 3 << endl;
return 0;
}
vc++6.0下写的