Advertisement
iamakulov

Task 7 for Boris

Nov 10th, 2013
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.12 KB | None | 0 0
  1. //7.В каждой строке матрице проверить наличие положительных элементов и при их наличии выполнить реверс элементов этой строки.
  2. #include<stdio.h>
  3. #include<math.h>
  4.  
  5. int main()
  6. {
  7.     int i,j,m,n, beginIndex, endIndex;
  8.     double a[10][10]={{0,-8.4, -13.6, -34.5,16.3,-34.9, 18.25,7,12, -56.14},
  9.     {-34.9, -18.25,-7,-12, -56.14,13, 18, 34, -102,66},
  10.     {2, 18, 34, 102,66,-38,-71,23,0.4,15},
  11.     {-13.6, -34.5,-16.3,-34.9, 18.25,7,12, -56.14,13, 18},
  12.     {16.3,-34.9, 18.25,7,12, -56.14,13, 18, 34, -102},
  13.     {18.25,7,12, -56.14,13, 18, 34, -102,66,-38},
  14.     {12, -56.14,13, 18, 34, -102,66,-38,-71,23},
  15.     {8.4, 13.6, -34.5,16.3,-34.9, 18.25,7,12, -56.14,13},
  16.     {-34.5,16.3,-34.9, 18.25,7,12, -56.14,13, 18, 34},
  17.     {56.14,13, 18, 34, -102,66,-38,-71,23,0.4}
  18.     };
  19.     double buf;
  20.     char haveReversed = 0;
  21.     //Ввод и контроль размеров матрицы
  22.     printf("\t Введите размеры матрицы m<=10 n<=10\n");
  23.     scanf("%d%d",&m,&n);
  24.     if (m<=0 || m>10 ||n<=0 ||n>10)
  25.     {
  26.         printf("\t Введенные размеры матрицы не допустимы\n",n);
  27.         printf("\nДля завершения программы нажмите любую клавишу\n");
  28.         return 0;
  29.     }
  30.     printf("\nИсходная матрица \n");
  31.     for(i=0; i<m;i++)
  32.         for(j=0; j<n;j++)
  33.             printf("%7.2lf%c",a[i][j],j==n-1?'\n':' ');
  34.     for(i = 0; i < m; i++) {
  35.         haveReversed = 0;
  36.         for(j = 0; j < n && !haveReversed; j++) {
  37.             if(a[i][j] > 0)
  38.             {
  39.                 beginIndex = 0;
  40.                 endIndex = n-1;
  41.                 while(beginIndex < endIndex)
  42.                 {
  43.                     buf = a[i][beginIndex];
  44.                     a[i][j] = a[i][endIndex];
  45.                     a[i][endIndex] = buf;
  46.                     beginIndex++;
  47.                     endIndex--;
  48.                 }
  49.        
  50.                 haveReversed = 1;
  51.             }
  52.         }
  53.     }
  54.    
  55.     //Вывод преобразованной матрицы
  56.     printf("\nПреобразованная матрица \n");
  57.     for(i=0; i<m;i++)
  58.         for(j=0; j<n;j++)
  59.             printf("%7.2lf%c",a[i][j],j==n-1?'\n':' ');
  60.    
  61.     printf("\nДля завершения программы нажмите любую клавишу\n");
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement