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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
#1

Осталось только упорядочить - C++

24.12.2013, 01:28. Просмотров 203. Ответов 6
Метки нет (Все метки)

Как упорядочить Массив b по неубыванию?
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int *a, *b, n, i, j=0, k=0, p;
    cout<<"Vv. razm. massiva a : "; cin>>n;
    a = new int [n];
    for(i = 0; i<n; i++){
        cout<<"a["<<i<<"] = "; cin>>a[i];
        }
    for(i = 0; i<n; i++){
        if(a[i]>0) k++;
        }
    b = new int [k];
    for(i = 0; i<n; i++ ){
        if(a[i]>0) {
            b[j]=a[i];
            j++;
            }
        }
    cout<<"Massiv b: \n";
    for(i = 0; i<k; i++){
        cout<<b[i]<<"\t";
        }
   
        cout<<endl;
    system("pause");
    return EXIT_SUCCESS;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 01:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Осталось только упорядочить (C++):

Решение СЛАУ методом простых итераций, задача решена, только написать код осталось - C++
решить СЛАУ с точностью е=10 в степени(-4) 4*x1-x2-x3=2 x1+5*x2-2*x3=4 x1+x2+4*x3=6 Система из 3-х уравнений, с 3...

Упорядочить по возрастанию только: положительные элементы списка - C++
Упорядочить по возрастанию только: положительные элементы списка

Нужно упорядочить главную диагональ матрицы. Не могу найти ошибку в коде. P.S. я только начинаю потому, еслиш - C++
#include &lt;iostream&gt;; #include &lt;math.h&gt;; using namespace std; int main() { int const n = 25, a = 25; double matrix; ...

Определить виды блюд, которые есть только на завтраке, только на обеде и только на ужине - C++
В столовой имеются отдельные меню на завтрак, обед и ужин. Известно, что в каждом таком меню не более 10 видов блюд.Определите, какие...

Сколько же мне осталось - C++
Доброго времени суток. Хочу узнать как можно реализовать на C++ Builder и с помощью компонентов календарный счётчик. К примеру в одном...

делаю лабу осталось 8мин!!!! - C++
делаю лабу осталось 8мин!!!!

6
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,018
24.12.2013, 01:44 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main()
{
    const int M = 10;
    int arr[M] = {1, 2, -3, 4, 5, -1, 4, -2, 27, 1};
 
    // модифицированная пузырьковая сортировка
    for (int i=0; i < M; i++)
        for (int j=M-1; j > i; j--)
            if (arr[j] < arr[i])
            {
                int tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
 
    for (int i=0; i < M; i++)
        std::cout << arr[i] << " ";
    std::cout << std::endl;
}
И память освободите, delete[] a; delete[] b;
1
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
24.12.2013, 01:49  [ТС] #3
MrGluck, А что собственно мне стоит добавить в свой код? Это?
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
for (int i=0; i < M; i++)
* * * * for (int j=M-1; j > i; j--)
* * * * * * if (arr[j] < arr[i])
* * * * * * {
* * * * * * * * int tmp = arr[i];
* * * * * * * * arr[i] = arr[j];
* * * * * * * * arr[j] = tmp;
* * * * * * }
?
И еще вопрос, как вот это понять?
Цитата Сообщение от MrGluck Посмотреть сообщение
std::cout
, т.е. если прописать
C++
1
using namespace std
то не надо просто употреблять?
0
Genn55
368 / 215 / 41
Регистрация: 26.12.2012
Сообщений: 708
24.12.2013, 01:54 #4
Еще модифицированная пузырьковая сортировка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (int i = 1; i < size; i++) //цикл проходов
{
int label = 0; //обнуляется при каждом входе в цикл проходов
for (int j = 0; j < size - i; j++) //количество сравнений сокращается при уменьшении количества проходов
{
if (A[j] > A[j + 1])
{
temp = A[j + 1];
A[j + 1] = A[j];
A[j] = temp;
label++;
}
}
if (label == 0) //если в массиве уже сортировать нечего, то выходим из цикла
i = size - 1;
}
1
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
24.12.2013, 02:04  [ТС] #5
Блин, ребят если не сложно. Напишите как сделать это для моих переменных...я вообще запутался.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,018
24.12.2013, 02:04 #6
Цитата Сообщение от Relike Посмотреть сообщение
Это?
А сами как думаете? Я показал пример пузырьковой сортировки, вместо arr подставляете ваш массив, вместо M - его размер.
Цитата Сообщение от Relike Посмотреть сообщение
И еще вопрос, как вот это понять?
я пишу полное имя функций и объектов (с явным указанием пространства имен). Если добавить строчку
Цитата Сообщение от Relike Посмотреть сообщение
using namespace std
то все будет свалено в пространство std и указывать явно не понадобится.
1
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
24.12.2013, 02:11  [ТС] #7
MrGluck, Всё понял. Спасибо большое!

Добавлено через 4 минуты
MrGluck,
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int *a, *b, n, i, j=0, k=0, p;
    cout<<"Vv. razm. massiva a : "; cin>>n;
    a = new int [n];
    for(i = 0; i<n; i++){
        cout<<"a["<<i<<"] = "; cin>>a[i];
        }
    for(i = 0; i<n; i++){
        if(a[i]>0) k++;
        }
    b = new int [k];
    for(i = 0; i<n; i++ ){
        if(a[i]>0) {
            b[j]=a[i];
            j++;
            }
        }
    cout<<"Massiv b: \n";
    for(i = 0; i<k; i++){
        cout<<b[i]<<"\t";
        }
    for (int i=0; i < n; i++)
        for (int j=n-1; j > i; j--)
            if (b[j] < b[i])
            {
                int tmp = b[i];
                b[i] = b[j];
                b[j] = tmp;
            }
    cout<<"\nUpor. Massiv b: \n";
    for(i = 0; i<k; i++){
        cout<<b[i]<<"\t";
        }
        cout<<endl;
    system("pause");
    return EXIT_SUCCESS;
}
Почему она теперь вылетает?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2013, 02:11
Привет! Вот еще темы с ответами:

Генератор частот. Осталось немного доработать - C++
Написал программу, которая генирирует звук заданной частоты на протяжение 8 секунд. Хочу, что бы он воспроизводился пока не нажму клавишу....

программу почти написал осталось малец - C++
перегрузка операций и ф-ий. Ввести класс для работы с объектом &quot;рациональная дробь&quot;(вида m/n ). Выполнить операции: 1- сложения...

Определить сколько секунд осталось до времени2 - C++
Дано время1,записанное в виде ЧЧ:ММ:СС , определить сколько секунд осталось до времени2,записанного в виде ЧЧ:ММ:СС.Если не сложно поясните...

Сколько дней осталось до конца года? - C++
Написать програму которая спрашивает у пользователя дату в формате ДД ММ ГГГГ и вычисляет сколько дней осталось до конца года. Я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
24.12.2013, 02:11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru