fork(3) download
  1. // Lab2_12.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "iostream"
  5. #include "stdlib.h"
  6. using namespace std;
  7. const int n = 3, m = 4;
  8. //Возвращает сумму парных положительных элементов строки матрицы
  9. int Sum(int *a) {
  10. int sum = 0;
  11. for (int i = 1; i < m; i += 2)//Проходимся по парным (четным?) элементам строки
  12. if (a[i] > 0)
  13. sum += a[i];
  14. return sum;
  15. }
  16.  
  17. //Сортирует строки матрицы
  18. void Sort(int**a) {
  19. int b;
  20. for(int i=1;i<n;i++)
  21. for(int j=i;j>0 && Sum(a[j-1])>Sum(a[j]);j--)
  22. //swap(x[j-1],x[j]);
  23. for (int k = 0; k<m; k++) {//Переписываем строку на новую позицию
  24. b = a[j][k];
  25. a[j][k] = a[j + 1][k];
  26. a[j + 1][k] = b;
  27. }
  28. cout << "Result:" << endl;
  29. for (int i = 0; i<n; i++)
  30. {
  31. for (int j = 0; j<m; j++)
  32. cout << a[i][j] << "\t";
  33. cout << "Sum= " << Sum(a[i]) << endl;
  34. }
  35. }
  36.  
  37. int main()
  38. {
  39. int **a;
  40. int i, j;
  41. //Создаем матрицу
  42. a = new int*[n];
  43. for (i = 0; i<n; i++)
  44. a[i] = new int[m];
  45. //Инициализируем матрицу рандомом
  46. srand(0);
  47. for (i = 0; i<n; i++)
  48. for (j = 0; j<m; j++)
  49. a[i][j] = rand() % 10 - 5;//10 - диапазон значений рандома, -5 - нижняя граница диапазона случайных значений
  50.  
  51.  
  52. //Выводим исходную матрицу
  53. cout << "MASSIV:" << endl;
  54. for (i = 0; i<n; i++)
  55. {
  56. for (j = 0; j<m; j++)
  57. cout << a[i][j] << "\t";
  58. cout << endl;
  59. }
  60. //Сортируем матрицу
  61. Sort(a);
  62.  
  63. //Очистка памяти
  64. for (i = 0; i<n; i++)
  65. delete[] a[i];
  66. delete[]a;
  67. a = NULL;
  68. system("pause");
  69. return 0;
  70. }
  71.  
  72.  
Runtime error #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
MASSIV:
-2	1	2	0	
-2	0	1	-3	
4	-4	-3	2