Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <time.h>
- #include <iostream>
- #include <locale>
- #include <fstream>
- #include <iomanip>
- using namespace std;
- int n2; // Кол-во эл-ов в одномерном массиве
- int n; // Кол-во строк в матрице
- int m; //Кол-во столбцов в матрицу
- bool flag = false; //Определяет существует ли одномерный массив
- bool flag2 = false; //Определяет существует ли матрица
- void form_mas(int* &mas){
- for (int i = 0; i < n2; i++){
- mas[i] = rand()%20; //Рандом от -10 до 9()
- }
- flag = true;
- cout << endl;
- cout << endl;
- }
- void print_mas(int* mas){
- if (flag){
- for (int i = 0; i < n2; i++){
- cout << mas[i] << " ";
- }
- }
- else cout << "Массив пуст" << endl;
- cout << endl;
- cout << endl;
- cout << endl;
- }
- int Prime(int a)
- {
- int i;
- if (a == 2)
- return 1;
- if (a == 0 || a == 1 || a % 2 == 0)
- return 0;
- for (i = 3; i*i <= a && a % i; i += 2)
- ;
- return i*i > a;
- }
- void del_mas(int* &mas){
- for (int j = n2 - 1; j > 0; j--){
- if (Prime(mas[j])){
- for (int i = j; i < n2 - 1; i++){
- mas[i] = mas[i + 1];
- }
- n2--;
- }
- }
- }
- void form_matr(int** &matr){
- for (int i = 0; i < n; i++){
- matr[i] = new int[m];
- for (int j = 0; j < m; j++){
- matr[i][j] = rand() % 20 - 10; //Рандом от -10 до 9()
- }
- }
- flag2 = true;
- }
- void sort_matr(int** matr){
- for (int i = 0; i < n; i++){
- for (int j = 0; j < m-1; j++){
- int t;
- if (matr[i][j] < matr[i][j + 1]){
- t = matr[i][j];
- matr[i][j] = matr[i][j + 1];
- matr[i][j + 1] = t;
- j--;
- }
- }
- }
- }
- void print_matr(int** matr){
- if (flag2){
- for (int i = 0; i < n; i++){
- for (int j = 0; j < m; j++){
- cout << setw(5) << matr[i][j];
- }
- cout << endl;
- }
- }
- else
- cout << "Матрица не создана" << endl;
- cout << endl;
- }
- void add_matr(int** matr){
- int* vector = new int[m];
- int t=0;
- cout << "Формирование вектор-строки :" << endl;
- for (int i = 0; i < m; i++){
- cout << "Введи значение " << i << "-го эл-та" << endl;
- cin >> vector[i];
- }
- for (int i = 0; i < n - t; i++){
- int min = matr[i][0];
- for (int j = 0; j < m; j++){
- if (matr[i][j] < min) min = matr[i][j];
- }
- if (min == matr[i][0]){
- t++;
- n++;
- for (int j = n - 1; j > i; j--){
- matr[j] = matr[j - 1];
- }
- matr[i] = vector;
- i++;
- }
- }
- }
- void main(){
- srand(time(0)); // рандомизация генератора случайных чисел
- setlocale(LC_ALL, "rus");
- int k;
- int* mas = new int[0];
- int** matr = new int*[0];
- do
- {
- cout << "1.Формирование одномерного массива\n";
- cout << "2.Печать массива\n";
- cout << "3.Удаление из одномерного массива\n";
- cout << "4.Формирование двумерного массива\n";
- cout << "5.Вывод матрицы на экран\n";
- cout << "6.Сортировка двумерного массива\n";
- cout << "7.Добавление вектор-строки в двумерный массив\n";
- cout << "8.Выход\n";
- cin >> k;
- switch (k)
- {
- case 1: cout << "Введите кол-во эл-ов в массиве" << endl;
- cin >> n2; mas = new int[n2]; form_mas(mas); break;//выделение памяти и заполнение
- case 2: print_mas(mas); break;//печать
- case 3: del_mas(mas); break;//удаление
- case 4: cout << "Кол-во строк?" << endl;
- cin >> n;
- cout << "Кол-во столбцов?" << endl;
- cin >> m; matr = new int*[n]; form_matr(matr); break;//заполнение матрицы
- case 5: print_matr(matr); break; //печать матрицы
- case 6: sort_matr(matr); break;//сортировка матрицы
- case 7: add_matr(matr); break;//добавление в матрицу
- }
- } while (k != 8);//выход
- }
Advertisement
Add Comment
Please, Sign In to add comment