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

Cортировка массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Условие переменной http://www.cyberforum.ru/cpp-beginners/thread394340.html
Здравствуйте мне нужно поставить условие на переменную что это число от 0 до 200х.. вводим не дробное число и не символ и не слово.помогите пожалуйста #include "stdafx.h" #include "iostream" #include <conio.h> using namespace std; int _tmain(int argc, _TCHAR* argv) { int n; cin>>n;
C++ Сложить элементы String Как сложить численные элементы string или конвертировать в int отдельные элементы массива? http://www.cyberforum.ru/cpp-beginners/thread394336.html
C++ Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке.
Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. Например: Мама, материал, ломала. Комбинация "ма" встречаеться в предложении 4 раза
C++ перевести из Pascal в С++
Помогите пожалуйста перевести код программы с языка паскаль на С++ program Dostup; uses crt; type TRights=set of (RRead,RWrite,RGrant); const FullRights: TRights=; MaxObj=5; MaxUsers=3; var Users: array of string;
C++ Обработка одномерных массивов с использованием указателей (Visual studio) C++ http://www.cyberforum.ru/cpp-beginners/thread394326.html
Обработка одномерных массивов с использованием указателей Задание: составить программу заданной в лабораторной работе №5 обра-ботки массива целых чисел с использованием адресной ароиф-метики. В процессе обработки использовать перестановки элементов внутри массива, не создавая новых массивов. Заполнение исходного массива организовать с клавиатуры. Исходный и обработанный массив выводить на...
C++ a в степени n с помощью рекурсии Подскажите где ошибся? #include <iostream> using namespace std; int Square(int,int); int main(){ int p,q; cin>>p>>q; подробнее

Показать сообщение отдельно
ProRocker
 Аватар для ProRocker
1 / 1 / 0
Регистрация: 20.03.2011
Сообщений: 12
29.11.2011, 21:18  [ТС]     Cортировка массива
Цитата Сообщение от shtefeek Посмотреть сообщение
Зачем делать так сложно?
Или я не правильно понял суть задачи?
Правильно понял, сделано очень толсто.
Я сделал путем создания нового массива, посчитал что так меньше всего затрат ресурсов.
А твой вариант я скомпилировать не смог, т.к. работаю в консоли используя cin и cout с отладчиком Visual Studio, не знаком с тем синтаксисом, который ты тут используешь.

Добавлено через 37 секунд
И количество членов в массиве, как я понимаю, должно быть кратно 4.

Добавлено через 6 минут
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
int massl(int n, float* mass, float* newMass)
{
        int answ;
        answ= analyze(n,mass);
        if (answ==0) return 0;
        else
        {
        int i,j;
        float vMass[100];
 
        for (i=0;i<n;i++) 
        {
            newMass[i]=mass[i];
            vMass[i]=mass[i];
        }
        for (i=0;i<n;i++)
            {
                for (j=0;j<n;j++)
                {
                    if (vMass[i]>=vMass[j]) swap(vMass[i],vMass[j]);    
                }
            }
 
    for (i=0;i<n-3;i+=2)
        {
            newMass[i+i]=vMass[i];
            newMass[i+i+1]=vMass[i+1];
            newMass[i+i+2]=vMass[n-i-1];
            newMass[i+i+3]=vMass[n-i-2];
        }
        
        return 1;
    }
}
shtefeek как я вижу тоже использовал 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
float* massl(int n, float* mass, int& tr)
{
        int answ;
        
        answ = analyze(n,mass);
 
        if (answ==0) 
        {
            tr=0;
            return 0;
        }
        else
        {
        float* newMass;
        float* vMass;
        newMass= new float [n];
        vMass= new float [n];
        int i,j;
 
        for (i=0;i<n;i++) 
        {
            newMass[i]=mass[i];
            vMass[i]=mass[i];
        }
        for (i=0;i<n;i++)
            {
                for (j=0;j<n;j++)
                {
                    if (vMass[i]>=vMass[j]) swap(vMass[i],vMass[j]);    
                }
            }
 
        for (i=0;i<n-3;i+=2)
        {
            newMass[i+i]=vMass[i];
            newMass[i+i+1]=vMass[i+1];
            newMass[i+i+2]=vMass[n-i-1];
            newMass[i+i+3]=vMass[n-i-2];
        }
        tr=1;
        return newMass;
        }
}
 
Текущее время: 09:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru