Требуется помощи с решением задачи (программой Си)

Тема в разделе "C/C++/C#", создана пользователем BuGa, 22 ноя 2009.

  1. BuGa

    BuGa Гость

    Вот сама задача, ому нелень посмарите и повозможности помогите) :rolleyes:

    Тема: ЗАДАЧИ НА СОРТИРОВКУ ИНФОРМАЦИИ В МАССИВЕ

    Определить, принадлежит ли упоpядочиваему множеству значение X.

    1. Даны действительные числа a1,....,an (n<=150). Оставить без
    изменения последовательность , если она упоpядочена по неу-
    быванию или по невозpастанию; в пpотивном случае упоpядоч-
    ить по неубыванию
    <table valign="top" style='margin:0;width:100%;border:1px dashed red;'>[tr]<td align='middle' bgcolor='#ff6060' valign='top' width='1%'>
    <FONT color='#ffffff' size='+3'> ! </font>
    </td><td align="midle" valign='top' style='background:#fff;'>Публикация не в том разделе. Перенесено. Предупреждение. Vital</td>[/tr]</table>
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Код (C++):
    /*
    1. Даны действительные числа a1,....,an (n<=150). Оставить без
    изменения последовательность , если она упоpядочена по неу-
    быванию или по невозpастанию; в пpотивном случае упоpядоч-
    ить по неубыванию
    */

    /*
    codeby.net
    Autor: DarkKnight125
    */

    #include <iostream>
    #include <time.h>

    using namespace std;

    void main(void)
    {
    int* Arr; //Массив
    int n; //Кол-во элементов массива

    setlocale(LC_ALL,"Russian"); //Локаль
    srand(time(NULL)); //Инициализация генератора случайно величины
    cout<<"Введите размерность массива n = ";
    cin>>n;
    Arr = new int[n]; //Выделим память по массив
    //Заполним массив случайными числами
    for (int i=0; i<n; i++)
    {
    Arr[i] = rand()%100 * ((rand()%2)?-1:1);
    }

    //Проверим отсортированны ли данные
    bool isSortUp = true; //флаг Сортировка по возрастанию
    bool isSortDown = true; //флаг Сортировка по убыванию

    for (int i=1; i<n; i++)
    {
    if (Arr[i] >= Arr[i-1]) isSortDown = false; //Если условие нарушается нужный флаг сбрасывается
    if (Arr[i] <= Arr[i-1]) isSortUp = false;

    if (isSortUp+isSortDown == 0) break;
    }
    if (isSortUp+isSortDown == 0)
    {
    cout<<"Данные массива не отсортированны... Будет выполнена сортировка по неубыванию"<<endl;
    //Сортируем по возрастанию
    for (int i=0; i<n; i++)
    {
    for (int j=i; j<n; j++)
    {
    if (Arr[i] > Arr[j])
    {
    int Temp = Arr[j];
    Arr[j] = Arr[i];
    Arr[i] = Temp;
    }
    }
    }
    } else cout<<"Данные массива отсортированны :"<<endl;

    //Выведим массив на экран
    for (int i=0; i<n; i++)
    {
    cout<<Arr[i]<<" ";
    }
    delete[] Arr; //Почистим память за собой

    }
     

    Вложения:

    • zd2.jpg
      zd2.jpg
      Размер файла:
      62,3 КБ
      Просмотров:
      17
Загрузка...

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