Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- template<typename Type>
- int max_by_abs(Type array[], int N) {
- int max_i = 0, i;
- Type max = abs(array[0]);
- for (i = 1; i < N; i++) {
- if (abs(array[i]) > max) {
- max = abs(array[i]);
- max_i = i;
- }
- }
- return max_i + 1;
- }
- template<typename Type>
- Type sum(Type array[], int N) {
- int i;
- bool add = false;
- Type sum = 0;
- for (i = 0; i < N; i++) {
- if (add) {
- sum += array[i];
- } else {
- if (array[i] > 0) {
- add = true;
- }
- }
- }
- return sum;
- }
- template<typename Type>
- void sort(Type array[], int N, int a, int b) {
- int r_i = 0, i;
- int temp;
- Type result[N];
- if(a > b)
- {
- temp = b;
- b = a;
- a = temp;
- }
- for (i = 0; i < N; i++) {
- temp = (int) array[i];
- if (temp >= a && temp <= b) {
- result[r_i] = array[i];
- r_i++;
- }
- }
- for (i = 0; i < N; i++) {
- temp = (int) array[i];
- if (temp < a || temp > b) {
- result[r_i] = array[i];
- r_i++;
- }
- }
- for (i = 0; i < N; i++) {
- cout << result[i];
- if (i != N - 1) cout << ", ";
- }
- }
- template<typename Type>
- void process(Type array[], int N)
- {
- int a, b, i;
- for (i = 0; i < N; i++) cin >> array[i];
- cin >> a;
- cin >> b;
- cout << max_by_abs(array, N) << ' ' << sum(array, N) << endl;
- sort(array, N, a, b);
- cout << endl;
- }
- int main() {
- int N;
- cin >> N;
- int array[N];
- double arrayDouble[N];
- float arrayFloat[N];
- process(array, N);
- process(arrayDouble, N);
- process(arrayFloat, N);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement