21.11.2007, 03:49
общий
это ответ
Здравствуйте, Иванов Александр Николаевич!
Вот STL-ный вариант решения вашей задачи...
Приложение:
#include <stdlib.h>#include <time.h>#include <vector>#include <algorithm>#include <functional>#include <iostream>using namespace std;int main(int argc, char* argv[]) { const int size = 15; vector<int> A(size); vector<int> B(size); int r_limit = 100; srand((unsigned) time(NULL)); for(int i=0; i<size; i++) { A[i] = rand()%(r_limit*2) - r_limit; B[i] = rand()%(r_limit*2) - r_limit; } cout << "Array A:" << endl; for(int i=0; i<size; i++) cout << A[i] << " "; cout << endl << "Array B:" << endl; for(int i=0; i<size; i++) cout << B[i] << " "; int max_negative; A.erase(remove_if(A.begin(), A.end(), bind2nd(greater_equal<int>(), 0)), A.end()); max_negative = static_cast<int>(*max_element(A.begin(), A.end())); cout << endl << endl << "Maximum negative element in array A: " << max_negative << endl; B.erase(remove_if(B.begin(),B.end(), bind2nd(greater_equal<int>(), 0)), B.end()); max_negative = static_cast<int>(*max_element(B.begin(), B.end())); cout << "Maximum negative element in array B: " << max_negative << endl; return 0;}