Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2011, 23:53   #1
ded12
Новичок
Джуниор
 
Регистрация: 18.05.2011
Сообщений: 1
По умолчанию одномерные массивы.решение есть но нужно пределать через функцию

вот задание
в одномерном массиве,состоящий из n целых элементов,вычислить :
1)минимальный по модулю элемент массива;
2)сумму модулей элементов, расположенных после первого элемента , равного нулю.
преобразовать массив таким образом, чтобы в первой его половине распологались элементы стоявщие в нечетных позицияхба во второй - элементы,стоявшие в четных.

код с++

Код:
#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;
}
ded12 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VB. Решение задач на одномерные и двумерные массивы. alex.puppeteer Помощь студентам 1 10.02.2011 07:21
Строки.(решение есть работающие, но есть 1 но((( Bombastick Microsoft Office Excel 6 28.12.2010 01:11
Двумерная матрица. Решение через процедуру и функцию. poseidonLOST Помощь студентам 1 16.12.2010 21:14
Решение примера через функцию InputBox и компонент Label Xenta Microsoft Office Excel 1 19.11.2010 15:58
Парни нужно решение задач на Pascal. Тема массивы. 666WARRIOR999 Помощь студентам 3 15.12.2009 15:59