Задача: Найти сумму элементов массива, расположенных до минимального э

Тема в разделе "C/C++/C#", создана пользователем INFINITIFXXX, 11 ноя 2010.

Статус темы:
Закрыта.
  1. INFINITIFXXX

    INFINITIFXXX Гость

    Помогите, пожалуйста, решить задачу:
    дан массив из N элементов (вещественные числа).
    Вычислить:
    сумму элементов массива, расположенных до минимального элемента. Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах.
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Еще раз скажу, с т.к. с прошлой темой не растерялся, помогу и с этой... Только завтра, спать очень хочется...
    Попробуй начало проги накидать сам, и запости.... я гляну..
     
  3. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Код (C++):
    /*
    дан массив из N элементов (вещественные числа).
    Вычислить:
    сумму элементов массива, расположенных до минимального элемента. Упорядочить по возрастанию отдельно элементы, стоящие на четных местах,
    и элементы, стоящие на нечетных местах.
    */


    /*
    codeby.net
    Autor: DarkKnight125
    */


    #include <iostream>
    #include <time.h>
    using namespace std;

    void main(void)
    {
    double *Array; //Массив
    int ArrSize; //Размер массива

    setlocale(LC_ALL,"Russian"); // Установим локаль = кодовую страницу CP1251
    srand (time(NULL)); //Инициализация генератора случайно величины
    cout<<"Введите размерность массива Arr : ";
    cin>>ArrSize;
    Array = new double[ArrSize]; //Выделение памяти под массив

    cout<<endl<<endl<<"Элементы массива Arr:"<<endl;
    for (int i=0; i<ArrSize; i++)
    {
    Array[i] = double (rand()%10000)/100; //Заполнение элементов массива случайными величинами
    cout<<Array[i]<<" ";
    }

    //Нахождение минимального элемента в массиве и его позиции
    double Min = numeric_limits<double>::max(); //Текущий минимум, определим его как максимальное значение double
    int MinPos = -1; //Позиция с минимальным элементом
    for (int i=0; i<ArrSize; i++) //Обойдем массив
    {
    if (Min>Array[i]) //Если Min> текущего элемента
    {
    Min = Array[i]; //Запишим новое мин. значение.
    MinPos = i; //Запишим позицию
    }
    }
    //Вычисление суммы до мин. элемента
    double Summa = 0; //Сумма до минимального элемента
    for (int i=0; i<MinPos; i++) //Обойдем массив до минимального элемента
    Summa+= Array[i]; //Увеличиваем сумму

    //Сортировка четных и ничетных элементов массива
    for (int i=0; i <ArrSize; i+=2) //Обойдем массив с шагом 2
    {
    for (int j=i; j<ArrSize; j+=2) //Обойдем массив с шагом 2 еще раз но от текущего элемента прошлого массива
    {
    int Temp;
    for (int k = 0; k<2 && (j+2+k)<ArrSize; k++) //Меняем элементы четные и ничетные местами
    {
    if (Array[i+k] > Array[j+2+k])
    {
    Temp = Array[i+k];
    Array[i+k] = Array[j+2+k];
    Array[j+2+k] = Temp;
    }
    }

    }
    }

    cout<<endl<<"Сумма до минимального элемента : "<<Summa;
    cout<<endl<<endl<<"Отсортированный массив: "<<endl;

    //Вывод на экран массива
    for (int i=0; i<ArrSize; i++)
    {
    cout<<Array[i]<<" ";
    }

    }
     
  4. INFINITIFXXX

    INFINITIFXXX Гость

    От всей души благодарю!!! ;)
     
Загрузка...
Похожие Темы - Задача Найти сумму
  1. Янчик
    Ответов:
    0
    Просмотров:
    481
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    781
  3. elzim
    Ответов:
    0
    Просмотров:
    929
  4. ShaoKahn
    Ответов:
    1
    Просмотров:
    1.120
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.105
Статус темы:
Закрыта.

Поделиться этой страницей