Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Аитов Ильяс
- // Мех-Мат ФИТ-1,2 2014г.
- // Лабораторная работа №5 Задача 3 Вариант 1.
- // Постановка задачи :
- // 1) Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать.
- // 2) Добавить заданный одномерный массив после всех строк, начинающихся на отрицательное значение и вывести на печать.
- // Взял рандомные числа в пределах от -250 до 250
- #include <iostream>
- #include <fstream>
- #include <locale>
- #include <time.h>
- #include <iomanip>
- using namespace std;
- void Print_Matr(int** matr, int n, int m){ //Функция для печати матрицы
- int i = 0, j = 0;
- while (j < m){
- while (i < n){
- cout << setw(6) << matr[i][j] << " ";
- i++;
- }
- i = 0;
- cout << endl;
- j++;
- }
- }
- int* form_mas(int count){
- int* massive = new int[count];
- int a = 0;
- while (a < count){
- massive[a] = rand() % 500 - 250;
- a++;
- }
- return massive;
- }
- int** form_matr(int n, int m)
- {
- int **matr = new int*[n]; //выделение памяти под массив указателей
- for (int i = 0; i < n; i++){
- matr[i] = form_mas(m);
- }
- return matr;//возвращаем указатель на массив указателей
- }
- void dobav_str(int** matr, int n, int m){
- // Добавить заданный одномерный массив после всех строк, начинающихся на отрицательное значение
- int m_new = m,i=0,j=0,a=0,k=0,b=0;
- int* zadan_mas = new int[n];
- for (j = 0; j < n; j++){ // Формируем "заданный массив"
- cout << "Введите [" << j << "] элемент для заданного массива" << endl;
- cin >> zadan_mas[j];
- }
- cout << endl;
- cout << endl;
- if (m % 2 == 0){
- while (i < m/2+b){
- if (matr[0][i] < 0){
- b++;
- k = m;
- while (k > i + 1){
- for (j = 0; j < n; j++){
- matr[j][k] = matr[j][k - 1];
- }
- k--;
- }
- for (j = 0; j < n; j++){
- matr[j][i + 1] = zadan_mas[j];
- }
- }
- i++;
- }
- }
- else{
- while (i < m/2+b){
- if (matr[0][i] < 0){
- b++;
- k = m;
- while (k > i + 1){
- for (j = 0; j < n; j++){
- matr[j][k] = matr[j][k - 1];
- }
- k--;
- }
- for (j = 0; j < n; j++){
- matr[j][i + 1] = zadan_mas[j];
- }
- }
- i++;
- }
- }
- j = 0;
- i = 0;
- cout << endl;
- cout << "Матрица после обработки : " << endl;
- cout << endl;
- Print_Matr(matr, n, m/2+b);
- }
- void main()
- {
- int n, m, i = 0, j = 0;
- setlocale(LC_ALL, "rus");
- cout << "Введите кол-во столбцов в двумерном массиве" << endl;
- cin >> n;
- cout << "Введите кол-во строк в двумерном массиве" << endl;
- cin >> m;
- time_t t;
- srand((unsigned)time(&t));
- int** matr = form_matr(n, m*2);
- cout << "Исходная матрица : " << endl;
- Print_Matr(matr, n, m);
- dobav_str(matr,n,m*2);
- }
Advertisement
Add Comment
Please, Sign In to add comment