Форум программистов, компьютерный форум CyberForum.ru

одномерные массивы.решение есть но нужно пределать через функцию - C++

Восстановить пароль Регистрация
 
Ded12
0 / 0 / 0
Регистрация: 10.05.2011
Сообщений: 4
18.05.2011, 22:51     одномерные массивы.решение есть но нужно пределать через функцию #1
вот задание
в одномерном массиве,состоящий из n целых элементов,вычислить :
1)минимальный по модулю элемент массива;
2)сумму модулей элементов, расположенных после первого элемента , равного нулю.
преобразовать массив таким образом, чтобы в первой его половине распологались элементы стоявщие в нечетных позицияхба во второй - элементы,стоявшие в четных.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <iomanip>
#include <clocale>
 
using namespace std;
 
int main()  {
    setlocale(LC_ALL, "Russian_Russia.1251");
    int n;
    cout << "Введите количество элементов: ";
    cin >> n;
    int *arr = new int[n];
    float middle, temp;
    int *stackl = new int[n], *stackr = new int[n], sp=0;
    int i, j, left, right, imin=0, abssum=0;
    cout << "Введите элементы массива: ";
    for (i = 0; i < n; i++)
    cin >> arr[i];  
    int minmod;//минимальный по модулю элемент
    int numminmod; //номер минимального элемента
    if(arr[0]>0)  {
        minmod = arr[0];
        numminmod = 0;
        }
    else {
        minmod = -arr[0];
        numminmod = 0;
    }
    for(int i=1;i<n;i++)  {
        if(arr[i]<0&&-arr[i]<minmod)  {
            minmod = -arr[i];
            numminmod = i;
        }
        else if(arr[i]>0&&arr[i]<minmod)  {
            minmod=arr[i];
            numminmod = i;
        }
    }
    cout << "Минимум по модулю: " << minmod <<endl;
    
    int summ=0;
    for(int i=0;i<n;i++)  {
        if(arr[i]<0)
            summ += (-arr[i]);
        else
            summ += arr[i];
    }
    cout<< "Сумма по модулю: "<< summ << endl;
 
    sp = 1; stackl[1] = 0; stackr[1] = n-1;
    while (sp > 0)  {
        left = stackl[sp];
        right = stackr[sp];
        sp--;
        while (left < right)  {
            i = left; j = right;
            middle = arr[(left+right) / 2];
            while (i < j)  {
                while (arr[i] < middle) i++;
                while (middle < arr[j]) j--;
                if (i <= j)  {
                    temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
                    i++; j--;
                }
            }
            if (i < right)  {
                sp++;
                    stackl[sp] = i;
                    stackr[sp] = right;
            }
            right = j;
        }
    }
    cout << "Расположение элементов в массиве: ";
    for( i = 0; i < n; i++)
        cout << arr[i] << "  ";
    cout <<endl;
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2011, 22:51     одномерные массивы.решение есть но нужно пределать через функцию
Посмотрите здесь:

одномерные массивы, указатели (с++) нужно найти ошибку C++
Одномерные Массивы. Решение уже есть. Переделать через функции. C++
C++ передача массивов в функцию (одномерные массивы)
C++ Передача массивов в функцию (одномерные массивы)
C++ Передача массивов в функцию (одномерные массивы)
Передача массивов в функцию (одномерные массивы) C++
Передача массивов в функцию (одномерные массивы) C++
Одномерные массивы. Найти есть ли в нем арифметическая прогрессия состоящая из трех элементов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 10:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru