Advertisement
al3taibi

Untitled

May 15th, 2022
979
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. template<typename Type>
  6. int max_by_abs(Type array[], int N) {
  7.     int max_i = 0, i;
  8.     Type max = abs(array[0]);
  9.     for (i = 1; i < N; i++) {
  10.         if (abs(array[i]) > max) {
  11.             max = abs(array[i]);
  12.             max_i = i;
  13.         }
  14.     }
  15.     return max_i + 1;
  16. }
  17.  
  18. template<typename Type>
  19. Type sum(Type array[], int N) {
  20.     int i;
  21.     bool add = false;
  22.     Type sum = 0;
  23.  
  24.     for (i = 0; i < N; i++) {
  25.         if (add) {
  26.             sum += array[i];
  27.         } else {
  28.             if (array[i] > 0) {
  29.                 add = true;
  30.             }
  31.         }
  32.     }
  33.  
  34.     return sum;
  35. }
  36.  
  37. template<typename Type>
  38. void sort(Type array[], int N, int a, int b) {
  39.     int r_i = 0, i;
  40.     int temp;
  41.     Type result[N];
  42.  
  43.     if(a > b)
  44.     {
  45.         temp = b;
  46.         b = a;
  47.         a = temp;
  48.     }
  49.  
  50.     for (i = 0; i < N; i++) {
  51.         temp = (int) array[i];
  52.         if (temp >= a && temp <= b) {
  53.             result[r_i] = array[i];
  54.             r_i++;
  55.         }
  56.     }
  57.  
  58.     for (i = 0; i < N; i++) {
  59.         temp = (int) array[i];
  60.         if (temp < a || temp > b) {
  61.             result[r_i] = array[i];
  62.             r_i++;
  63.         }
  64.     }
  65.  
  66.     for (i = 0; i < N; i++) {
  67.         cout << result[i];
  68.         if (i != N - 1) cout << ", ";
  69.     }
  70. }
  71.  
  72. template<typename Type>
  73. void process(Type array[], int N)
  74. {
  75.     int a, b, i;
  76.  
  77.     for (i = 0; i < N; i++) cin >> array[i];
  78.  
  79.     cin >> a;
  80.     cin >> b;
  81.  
  82.     cout << max_by_abs(array, N) << ' ' << sum(array, N) << endl;
  83.     sort(array, N, a, b);
  84.     cout << endl;
  85. }
  86.  
  87.  
  88. int main() {
  89.     int N;
  90.     cin >> N;
  91.  
  92.     int array[N];
  93.     double arrayDouble[N];
  94.     float arrayFloat[N];
  95.  
  96.     process(array, N);
  97.     process(arrayDouble, N);
  98.     process(arrayFloat, N);
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement