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

C++, одномерный массив, сортировка. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строки.Текстовый файл. http://www.cyberforum.ru/cpp-beginners/thread119513.html
Есть файл с 5 строками. Задача состоит в том, чтобы использовать каждую строку по очереди, т.е. как я понимаю нужно в переменную по очереди записывать каждую следующую строку в цикле, а вот сделать это не получается? Или есть какой-нибудь другой вариант? Спасибо.
C++ Модуль разности сумм элементов (Прошу решения) Задан массив, определить значение k, при котором сумма |(A(1)+A(2)+…+A(k)) - (A(k+1)+…+A(N))| минимальна (то есть минимален модуль разности сумм элементов в правой и левой части, на которые массив делится этим k). Шаблон выполнения приложил. нужно расписать все...а я не понимаю,с чего начать...тяжело пока. Теория Анализ задачи и алгоритм Описание программной реализации ... http://www.cyberforum.ru/cpp-beginners/thread119509.html
Сумма первых n целых положительных четных целых чисел C++
Написать программу, которая вычисляет сумму первых n целых положительных четных целых чисел. Количество суммируемых чисел должно вводиться во время работы программы. Ниже приведен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полу¬жирным шрифтом). Вычисление суммы четных положительных чисел. Введите количество суммируемых чисел и нажмите...
Вывести таблицу квадратов первых 10-ти положительных чисел C++
Ниже приведен рекомендуемый вид экрана во время работы программы. Таблица квадратов. Число Квадрат 1 1 2 4 3 9 4 16 5 25 6 36 7 49
C++ Мышь в Borland C++ 3.11 for DOS http://www.cyberforum.ru/cpp-beginners/thread119489.html
Привет всем! Тут возникла такая проблема, мне нужно подключить мышь в Си++. Надо, чтоб по нажатию левой кнопки мыши вычислялись координаты курсора. Не подскажите, как это можно реализовать?
C++/CLI WinForms Кто поможет перевести на С++ ? Кто поможет перевести на С++ ? namespace CustomColumnAndCell { public class StatusColumn : System.Windows.Forms.DataGridViewColumn { public StatusColumn() : base(new StatusCell()) { } ///// Как эта строчка выглядит на C++/CLI ? подробнее

Показать сообщение отдельно
HenryL
2 / 2 / 0
Регистрация: 14.04.2010
Сообщений: 32
20.04.2010, 17:12  [ТС]     C++, одномерный массив, сортировка.
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Предлагаю так:
1. Исходный массив сортируем по убыванию.
2. Создаем массив X, заводим две переменные: i_l=0, i_r=n-1. Затем запускаем цикл for(i=0; i<n; i++)
если i четное, то элементу X[i_l] присваиваем значение элемента исходного массива с индексом i и увеличиваем i_l на единицу, если i нечетное, то элементу X[i_r] присваиваем значение элемента исходного массива с индексом i и уменьшаем i_r на единицу.
С массивом Y немного подумайте и тоже получится.
спасибо, попробую этот алгоритм

Цитата Сообщение от uggway Посмотреть сообщение
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
#include<algorithm>
 
#define SZ 9
int a[SZ]={1,12,3,41,15,64,7,8,9};
int b[SZ], c[SZ];
int e = 0,i = SZ-1;
 
sort(a,a+SZ);//сортируем... по возрастанию :)
do
{
    b[e] = a[i--];
    b[SZ - 1 - e] = a[i--];
    e++;
 
} while(e < SZ/2);
if(SZ%2) b[SZ/2] = a[0]; //1
e = 0; i = SZ-1;
if(SZ%2) c[SZ/2] = a[i];
do{
    c[SZ/2+e] = a[i--];
    if(e)c[SZ/2-e] = a[i--];
    e++;
 
}while(e < SZ/2);
if(SZ%2){c[SZ-1] = a[i];c[0]=a[0];}else c[0] = a[0];//2
сложно написано, не все понял =)
Наш Visual Studio не компилирует.

Цитата Сообщение от easybudda Посмотреть сообщение
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
#include <iostream>
#include <set>
#include <algorithm>
#include <iterator>
 
int main(){
    const int SIZE = 10;
    int arr[SIZE] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    std::cout << "Array: ";
    std::copy(arr, arr + SIZE, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    int *l, *r, *p;
    bool left;
    std::set<int, std::greater<int> > s;
    for ( int i = 0; i < SIZE; ++i )
        s.insert(arr[i]);
    l = arr;
    r = arr + SIZE - 1;
    left = true;
    while ( !s.empty() ){
        if ( left )
            p = l++;
        else
            p = r--;
        left = !left;
        *p = *s.begin();
        s.erase(s.begin());
    }
    std::cout << "Result: ";
    std::copy(arr, arr + SIZE, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    return 0;
}
если
C++
1
std::set<int, std::greater<int> > s;
заменить на
C++
1
std::set<int, std::less<int> > s;
получится
Спасибо, сейчас попробую разобраться. Правда некоторые операторы мне еще не известны

Добавлено через 7 минут
Я на начальном этапе изучения cpp, поэтому, по возможности, как можно проще, пожалуйста.
 
Текущее время: 02:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru