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

  • Автор темы BuGa
  • Дата начала
B

BuGa

#1
Вот сама задача, ому нелень посмарите и повозможности помогите) :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>
 

DarkKnight

Well-known member
01.08.2010
653
0
#2
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; //Почистим память за собой

}
 

Вложения

  • 62.3 КБ Просмотры: 17