Advertisement
Guest User

Untitled

a guest
Dec 9th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <clocale>
  4. #include <cstdlib>
  5. #include <cmath>
  6. #include <ctime>
  7.  
  8. using namespace std;
  9.  
  10. void absolute_value(int *arr, int arrSize, int absValue, int *countElements) {
  11. int localMaxIndex;
  12. for (int k = 0; k < arrSize; k++) {
  13. for (int i = 0; i < arrSize - *countElements; i++) {
  14. if (abs(arr[i]) > absValue) {
  15. *countElements += 1;
  16. localMaxIndex = i;
  17. for (int j = localMaxIndex; j < arrSize; j++)
  18. arr[j] = arr[j+1];
  19. }
  20. localMaxIndex = 0; // Лишнее, возможно.
  21. }
  22. }
  23. }
  24.  
  25. int main() {
  26. setlocale(LC_ALL, "Russian");
  27. srand(time(0));
  28. int arrSize,
  29. absInteger, // Задаваемое число
  30. countElements; // Счетчик элементов, удовл. условию задачи
  31. cout << "Удаление элементов, превосходящих заданное число по абсолютному значению, из массива (3).\n";
  32. anotherTry:
  33. cout << "Введите размер массива: "; cin >> arrSize;
  34. if (arrSize < 1) {
  35. cout << "\nВведено некорректное значение. Попробуйте ещё раз.\n";
  36. goto anotherTry;
  37. }
  38. int *arr = new int[arrSize];
  39. // Заполнение массива и вывод на экран:
  40. for (int i = 0; i < arrSize; i++) {
  41. arr[i] = 1 + rand() % 200 - 100;
  42. cout << setw(4) << arr[i];
  43. }
  44. cout << "\nВведите число, по которому из массива удалятся элементы, превосходящие его: "; cin >> absInteger;
  45. absolute_value(arr, arrSize, absInteger, &countElements);
  46. // Вывод полученных данных:
  47. cout << "\nПолученный результат:\n";
  48. for (int i = 0; i < arrSize - countElements; i++)
  49. cout << setw(4) << arr[i];
  50. cout << endl;
  51. delete [] arr;
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement