Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- #include <cstdlib>
- #include <vector>
- using namespace std;
- int main()
- {
- srand(time(0));
- vector<int> vec;
- int min = 1000;
- for (int i = 0; i < 40; i++){
- vec.push_back((rand() % 20001) - 10000);
- }
- for (auto it = vec.begin(); it != vec.end(); it++){
- cout << *it << " | ";
- if (*it > 99 && *it < 1000 && *it < min){
- min = *it;
- }
- }
- if (min == 1000){
- cout << endl << "NO";
- }
- else{
- cout << endl << "MIN: " << min;
- }
- return 0;
- }
- /*************************************************************************************************************************************/
- #include <iostream>
- #include <ctime>
- #include <cstdlib>
- #include <vector>
- #include <algorithm>
- using namespace std;
- void reverseFirstColumn(vector< vector<int> > &matr){
- vector<int> vec;
- for (auto& it : matr)
- vec.push_back(*it.begin());
- reverse(vec.begin(), vec.end());
- auto it1 = vec.begin();
- for (auto& it : matr)
- *it.begin() = *(it1++);
- }
- bool checkRepeats(const vector< vector<int> > &matr){
- for (auto it1 = matr.begin(); it1 != matr.end(); it1++)
- for (auto it2 = it1 + 1; it2 != matr.end(); it2++)
- if (*it1->begin() == *it2->begin())
- return false;
- return true;
- }
- void changeSigns(const int &row, vector< vector<int> > &matr){
- for (auto it = (matr.begin()+row-1)->begin()+row-1; it != (matr.begin()+row-1)->end(); it++)
- if (!(*it % 2))
- *it = -*it;
- }
- bool checkZeros(const vector< vector<int> > &matr){
- int kol = 0;
- for (auto& it : matr)
- kol += count(it.begin(), it.end(), 0);
- if (!(kol % 2) && kol > 0) return true;
- return false;
- }
- void removeRows(vector< vector<int> > &matr){
- for (auto it = matr.begin()+1; it < matr.end(); it++){
- if (*it == *matr.begin())
- matr.erase(it, it+1);
- }
- }
- void printMatrix(const vector< vector<int> > &matr){
- for (auto it1 = matr.begin(); it1 != matr.end(); it1++){
- for (auto it2 = it1->begin(); it2 != it1->end(); it2++)
- cout << *it2 << "\t";
- cout << endl;
- }
- }
- int main()
- {
- srand(time(0));
- int n = 4;
- vector< vector<int> > matrix;
- for (int i = 0; i < n; i++){
- vector<int> vec;
- int d;
- for (int j = 0; j < n; j++){
- cin >> d;
- vec.push_back(d);
- }
- //vec.push_back(rand() % 21 - 10);
- matrix.push_back(vec);
- }
- cout << "Исходная матрица:\n";
- printMatrix(matrix);
- if (checkRepeats(matrix)){
- reverseFirstColumn(matrix);
- cout << "\nПеревернутый первый столбец:\n";
- printMatrix(matrix);
- }
- else cout << "\nВ первом столбце есть повторения.\n";
- int r;
- cout << "\nВведите номер строки от 1 до " << n << ":\n";
- cin >> r;
- changeSigns(r, matrix);
- cout << "\nИзмененные знаки у всех четных элементов в " << r << "ой строке, начиная от главной диагонали:\n";
- printMatrix(matrix);
- int x;
- if (checkZeros(matrix)){
- for (auto& it : matrix)
- replace(it.begin(), it.end(), 0, *max_element(matrix.begin()->begin(), matrix.begin()->end()));
- cout << "\nНули заменены на максимум первой строки:\n";
- printMatrix(matrix);
- }
- else cout << "\nЧисло нулей нечетно или их нет.\n";
- removeRows(matrix);
- if (matrix.size() != n){
- cout << "\nУдалены строки, равные первой:\n";
- printMatrix(matrix);
- }
- else cout << "\nНет строк равных первой.\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement