Guest User

Untitled

a guest
May 26th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. #include<IOstream>
  2. #include<conio.h>
  3. #include <stdlib.h>
  4. #include <iomanip>
  5. using namespace std;
  6. const int N = 5;
  7.  
  8. // Возвращает максимальный модулю элемент массива
  9. double findMaxElement(double* array) {
  10. double imax = array[0];
  11. for (int j = 0; j < N; j++)
  12. if (abs(imax) < (abs(array[j])))
  13. imax = array[j];
  14. return imax;
  15. }
  16.  
  17. // Возвращает сумму элементов, после 1 положительного
  18. double calcSum(double* array, int &p) {
  19. double sum = 0;
  20. int j;
  21. p = -1;
  22. int k = 0;
  23. for (j = 0; j < N; ++j) {
  24. if (array[j] > 0) {
  25. p = j;
  26. }
  27. }
  28. if (p == -1) {
  29. cout << "Нет положительных =(" << endl << endl;
  30. } else if (p == N - 1) {
  31. cout << "Положительный элемент единственный и последний" << endl
  32. << endl;
  33. }
  34. for (j = p + 1; j < N; j++) {
  35. sum += array[j];
  36. }
  37. return sum;
  38. }
  39.  
  40. // Возвращает преобразованный массив
  41. double* preobr(double* array, double a, double b) {
  42. double* arr;
  43. arr = new double[N];
  44.  
  45. int k = 0, j;
  46. for (j = 0; j < N; j++) {
  47. if (array[j] >= a && array[j] <= b) {
  48. arr[k] = array[j];
  49. k++;
  50. }
  51. }
  52. for (j = 0; j < N; j++) {
  53. if (array[j] < a || array[j] > b) {
  54. arr[k] = array[j];
  55. k++;
  56. }
  57. }
  58. return arr;
  59. }
  60. int main() {
  61. //1 этап
  62. system("chcp 1251 > nul"); //Подключаем русский язык
  63.  
  64. double *array;
  65. array = new double[N];
  66.  
  67. for (int j = 0; j < N; j++) {
  68. cout << "Введи массив[" << j << "]= ";
  69. cin >> array[j];
  70. }
  71. cout << endl << endl;
  72. cout << "Максимальный по модулю элемент: " << findMaxElement(array) << endl;
  73. //2 этап
  74. int p;
  75. double sum = calcSum(array, p);
  76. if (p != -1 && p != N - 1) {
  77. cout << "Сумма после первого положительного: " << sum << endl << endl;
  78. } else
  79. cout << endl;
  80. //3 этап
  81. double a, b;
  82. cout << "Введите a" << endl;
  83. cin >> a;
  84. cout << "Введите b" << endl;
  85. cin >> b;
  86.  
  87. cout << "Массив, после преобразования: " << endl;
  88.  
  89. double* arr;
  90. arr = new double[N];
  91. arr = preobr(array, a, b);
  92.  
  93. for (int k = 0; k < N; k++)
  94. cout << setw(3) << arr[k] << " ";
  95. getch();
  96. return 0;
  97. }
Add Comment
Please, Sign In to add comment