Advertisement
Guest User

Untitled

a guest
May 25th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "stdafx.h"
  2. #include "iostream"
  3. #include "cstdio"
  4. #include "stdlib.h"
  5. #include "iomanip"
  6. using namespace std;
  7.  
  8. void FillMassive(int **ary, int Index1, int Index2);
  9. int GetZeroIndex(int **ary, int Index1, int Index2);
  10. void PrintMassive(int **ary, int Index1, int Index2);
  11. int RemoveZeroString(int **ary, int Index1, int Index2);
  12.  
  13. int main()
  14. {
  15.     int Index1;
  16.     int Index2;
  17.     int n;
  18.     int **ary;
  19.     cout << "vvedite kolichestvo strok = ";
  20.     cin >> Index1;
  21.     cout << "vvedite kolichestvo stolbzov = ";
  22.     cin >> Index2;
  23.     srand(time(NULL));
  24.     ary = new int *[Index1];    // массив указателей
  25.     for (int i = 0; i < Index1; i++)
  26.     {
  27.         ary[i] = new int[Index2];     // инициализация указателей
  28.     }
  29.     FillMassive(ary, Index1, Index2);
  30.     PrintMassive(ary, Index1, Index2);
  31.     cout << endl;
  32.     cout << endl;
  33.     cout << endl;
  34.     int b=RemoveZeroString(ary, Index1, Index2);
  35.     PrintMassive(ary, Index1-b, Index2);
  36.     cin >> n;
  37. }
  38. void FillMassive(int **ary, int Index1, int Index2)
  39. {
  40.         // работа с массивом
  41.     for (int i = 0; i < Index1; i++)
  42.     {
  43.         for (int j = 0; j < Index2; j++)
  44.         {
  45.             ary[i][j] = rand() % 10 - rand() % 10;
  46.         }
  47.     }
  48. }
  49. void PrintMassive(int **ary, int Index1, int Index2)
  50. {
  51.     for (int i = 0; i < (Index1 - 1); i++)
  52.     {
  53.         for (int j = 0; j < Index2; j++)
  54.         {
  55.             cout << ary[i][j] << " ";
  56.         }
  57.         cout << endl;
  58.     }
  59. }
  60.  
  61.  
  62. int GetZeroIndex(int **ary, int Index1, int Index2){
  63.     for (int i = 0; i < Index1; i++)
  64.     {
  65.         bool zero = true;
  66.         for (int j = 0; j < Index2; j++)
  67.         {
  68.             if (ary[i][j] != 0)
  69.             {
  70.                 zero = false;
  71.                 break;
  72.             }
  73.         }
  74.         if (zero) return i;
  75.     }
  76.     return -1;
  77. }
  78.  
  79.  
  80. int RemoveZeroString(int **ary, int Index1, int Index2)
  81. {
  82.     int n = 0;
  83.     int zeroIndex = GetZeroIndex(ary, Index1, Index2);
  84.     if (zeroIndex == -1 || zeroIndex == (Index1 - 1))
  85.     {
  86.         //cout << "No zero string found";
  87.         return 0;
  88.     }
  89.     for (int i = zeroIndex; i < (Index1 - 1); i++)
  90.     {
  91.         for (int j = 0; j < Index2; j++)
  92.         {
  93.             ary[i][j] = ary[i + 1][j];
  94.         }
  95.     }
  96.         return 1 + RemoveZeroString(ary, Index1, Index2);
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement