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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 70, средняя оценка - 4.87
jayson
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 26
#1

Заполнить массив рандом из 20 чисел, отсортировать по возрастанию и вывести на экран - C++

24.03.2010, 15:43. Просмотров 9100. Ответов 5
Метки нет (Все метки)

всем привет.вот пытаюсь заполнить массив рандом из 20 чисел,после мне его нужно отсортировать по возрастанию и вывести на экран,из за чего не работает?

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void main()
{
    const int max_elem=20;
    int mas[max_elem];
    for(int i=0;i<20;i++)
    {
        mas[i]=rand()%200;
    }
    int elems=max_elem;
    int n;
    for(int cur=0;cur<elems;cur++)
        for(int n=0;n<elems-1;n++)
            if(mas[n]>mas[n+1])
            {
                int t=mas[n];
                mas[n]=mas[n+1];
                mas[n+1]=t;
                cout<<max_elem<<",";
            }
            
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2010, 15:43     Заполнить массив рандом из 20 чисел, отсортировать по возрастанию и вывести на экран
Посмотрите здесь:

C++ Отсортировать массив по возрастанию и вывести на экран
Отсортировать по возрастанию массив 10 целых чисел методом выбора C++
Cгенерировать одномерный массив из 10 чисел,отсортировать его по возрастанию или убыванию C++
Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька C++
Отсортировать массив по убыванию, затем добавить недостающий элемент и отсортировать массив по возрастанию C++
Заполнить массив рядом чисел от 0 до 9, вывести его на экран C++
STL Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести C++
C++ Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по возрастанию
Отсортировать по возрастанию массив 10 целых чисел методом выбора C++
Вывести массив, отсортировать по возрастанию, и определить содержится ли в нем хотя бы 2 одинаковых значения C++
Отсортировать по возрастанию и вывести на экран сперва чётные элементы вектора, а затем нечётные C++
Получить массив нечетных чисел и отсортировать его по возрастанию методом выбора C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Зоти Сергей
 Аватар для Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
24.03.2010, 15:51     Заполнить массив рандом из 20 чисел, отсортировать по возрастанию и вывести на экран #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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void main()
{
        const int max_elem=20;
        int mas[max_elem];
        for(int i=0;i<max_elem;i++)
        {
                mas[i]=rand()%200;
        }
 
        int n;
        for(int cur=0;cur<max_elem;cur++)
                for(int n=0;n<max_elem-1;n++)
 
                        if(mas[n]>mas[n+1])
                        {
                                int t=mas[n];
                                mas[n]=mas[n+1];
                                mas[n+1]=t;
 
                        }
 
        for(int i=0;i<max_elem;i++)
                cout<<mas[i]<<",";
}
jayson
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 26
24.03.2010, 15:58  [ТС]     Заполнить массив рандом из 20 чисел, отсортировать по возрастанию и вывести на экран #3
спасибо!
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
24.03.2010, 16:34     Заполнить массив рандом из 20 чисел, отсортировать по возрастанию и вывести на экран #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <set>
#include <iterator>
#include <cstdlib>
#include <ctime>
    
/* выводит 20 случайных чисел от 0 до 99, упорядоченных по возрастанию */
    
int main(){
    std::multiset<int> ms;
    const int SIZE = 20;
    
    srand(time(NULL));
    for ( int i = 0; i < SIZE; ++i )
        ms.insert(rand() % 100);
    
    std::copy(ms.begin(), ms.end(), std::ostream_iterator<int>(std::cout, "\n"));
    
    return 0;
}
zloivan
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 8
28.09.2010, 01:00     Заполнить массив рандом из 20 чисел, отсортировать по возрастанию и вывести на экран #5
Господа программисты, только недавно начал познавать азы программирования на C++. До этого написал только одну прогу Hello World. В общем, есть задание написать прогу, чтобы после ввода 4ех целых чисел она их сортировала, и выводила по убыванию и возрастанию, вот что получилось:
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
#include <iostream.h>
#include <conio.h>
int main()
{int a,b,c,d,n1,n2,n3,n4,rez1,rez2,rez3,rez4;
cout<<"Trebuetsya vvesti 4 chisla"<<endl;
getch();
cout<<"Vvedite chislo 1 - ";
cin>>a;
cout<<"Vvedite chislo 2 - ";
cin>>b;
cout<<"Vvedite chislo 3 - ";
cin>>c;
cout<<"Vvedite chislo 4 - ";
cin>>d;
cout<<"Sortirovka po ubivaniyu - "<<endl;
 
if (a>b) n1=a, n3=b;
        else n3=a, n1=b;
if (c>d) n2=c, n4=d;
        else n4=c, n2=d;
if (n1>n2) rez1=n1, rez2=n2;
        else rez2=n1, rez1=n2;
if (n3>n4) rez4=n4,rez3=n3;
        else rez3=n4,rez4=n3;
cout<<"1 = "<<rez1<<endl<<"2 = "<<rez2<<endl <<"3 = "<<rez3<<endl<<"4 = "<<rez4<<endl;
cout<<"Sortirovka po vozrastaniyu - "<<endl;
cout<<"1 = "<<rez4<<endl<<"2 = "<<rez3<<endl <<"3 = "<<rez2<<endl<<"4 = "<<rez1<<endl;
 
getch(); return 0;
Прога работает, но написана на мой взгляд крайне коряво, тк если бы переменных было не 4 а скажем 6 или более, количество переменных увеличилось бы еще на 4, пожалуйста подскажите какой нить более человеческий способ выполнения задачи (с массивами пока что работать не умею)... Хотелось бы избавится от такого количества переменных, и сократить их хотя бы до 8.

За одно посоветуйте пожалуйста какую-нибудь литературу, толковую, для начинающих. Заранее спасибо.
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
28.09.2010, 01:32     Заполнить массив рандом из 20 чисел, отсортировать по возрастанию и вывести на экран #6
Цитата Сообщение от zloivan Посмотреть сообщение
пожалуйста подскажите какой нить более человеческий способ выполнения задачи (с массивами пока что работать не умею)...
прийдётся научиться...
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
#include <iostream>
#include <algorithm>
#include <functional>
 
int main(){
    int * arr, size;
    std::cout << "Number of elements: ";
    std::cin >> size;
    arr = new int [ size ];
    for ( int i = 0; i < size; ++i ){
        std::cout << "ARRAY[" << i << "] = ";
        std::cin >> arr[i];
    }
    std::cout << "\nSorted ascendant:\n";
    std::sort(arr, arr + size, std::less<int>());
    for ( int i = 0; i < size; ++i )
        std::cout << arr[i] << ' ';
    std::cout << "\n\nSorted descendant:\n";
    std::sort(arr, arr + size, std::greater<int>());
    for ( int i = 0; i < size; ++i )
        std::cout << arr[i] << ' ';
    std::cout << std::endl;
    
    delete [] arr;
    return 0;
}
Цитата Сообщение от zloivan Посмотреть сообщение
недавно начал познавать азы программирования на C++
вот сюда http://www.cplusplus.com/reference/ почаще заглядывайте - много для себя нового найдёте
Yandex
Объявления
28.09.2010, 01:32     Заполнить массив рандом из 20 чисел, отсортировать по возрастанию и вывести на экран
Ответ Создать тему
Опции темы

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