N个整数,求其中任意N-1个数的乘积中的最大的一个

转自:http://bbs.csdn.net/topics/90460367


int main(int argc, char* argv[])
{
int a[] = { -2, -1, 0, 0, 1, 2, 3, -9 };
vector arr(a, a + sizeof(a) / sizeof(int));
std::sort(arr.begin(), arr.end(), std::less());

vector::iterator iter = find(arr.begin(), arr.end(), 0);
size_t c = std::count(iter, arr.end(), 0);
vector arrn(arr.begin(), iter);
vector arrz(iter, iter + c);
vector arrp(iter + c, arr.end());

size_t zc = arrz.size();
if (zc > 1)
{
cout << 0;
}
else if (zc == 1)
{
if (arrn.size() % 2 == 0)
{
cout << "times, except 0";
}
else
{
cout << 0;
}

}
else if (zc == 0)
{
if (arrn.size() % 2 == 0)
{
//去掉那个最小的正整数
}
else
{
//去掉那个最大的负整数
}
}
return 0;
}

你可能感兴趣的:(C++/C,算法)