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

Заполнить массив случайными числами по возрастанию и убыванию - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
kypiwindy
357 / 271 / 103
Регистрация: 29.05.2010
Сообщений: 697
Записей в блоге: 1
Завершенные тесты: 3
22.09.2010, 18:46     Заполнить массив случайными числами по возрастанию и убыванию #1
Случайными числами 0..700 по возрастанию и убыванию
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2010, 18:46     Заполнить массив случайными числами по возрастанию и убыванию
Посмотрите здесь:

C++ Заполнить одномерный массив X 10 случайными числами от -5 до 7
C++ Заполнить массив случайными числами от -50 до 50
C++ Заполнить массив случайными числами
Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию C++
C++ Отсортировать массив со случайными числами по убыванию
C++ Заполнить массив размером 10 случайными числами от 0 до 10
STL Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2841 / 1778 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.09.2010, 19:10     Заполнить массив случайными числами по возрастанию и убыванию #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
44
45
46
47
48
#include<iostream>
#include<conio.h>
#include<ctime>
using namespace std;
int main()
{
        const int n = 10;
        int m[n]; 
        srand(time(0));
        cout << "Do" << endl;
        for(int i = 0; i < n; i ++)
        {
             m[i] = rand()%700;
             cout << m[i] << ",";   
        }
        for(int i = n - 1; i >= 1; i--)
          for(int j = 0; j < i; j++)
          {
                  
                  if(m[j] > m[j+1])
                  {
                  int foo = m[j];
                  m[j] = m[j+1];
                  m[j+1] = foo;
                  }
          }
        cout << endl;
        cout << "After(>)" << endl;
        for(int i = 0; i < n; i++)
        cout << m[i] << ",";
        for(int i = n - 1; i >= 1; i--)
          for(int j = 0; j < i; j++)
          {
                  
                  if(m[j] < m[j+1])
                  {
                  int foo = m[j];
                  m[j] = m[j+1];
                  m[j+1] = foo;
                  }
          }
        cout << endl;
        cout << "After(<)" << endl;
        for(int i = 0; i < n; i++)
        cout << m[i] << ",";
        getch();
        return 0;
}
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
23.09.2010, 01:40     Заполнить массив случайными числами по возрастанию и убыванию #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <functional>
 
int main(int argc, char* argv[])
{
    int arr[10];
    for(size_t i=0;i<sizeof(arr)/sizeof(int);i++)
        arr[i]=std::rand()%700;
    std::sort(arr, arr+sizeof(arr)/sizeof(int));
    std::copy(arr, arr+sizeof(arr)/sizeof(int), std::ostream_iterator<int>(std::cout, "\t"));
    std::cout<<"--------"<<std::endl;
    std::sort(arr, arr+sizeof(arr)/sizeof(int), std::greater<int>());
    std::copy(arr, arr+sizeof(arr)/sizeof(int), std::ostream_iterator<int>(std::cout, "\t"));
    std::system("pause");
    return 0;
}
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
23.09.2010, 02:13     Заполнить массив случайными числами по возрастанию и убыванию #4
так выглядит естественней.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <functional>
 
int main(int argc, char* argv[])
{
    std::vector<int> arr(10);
    std::generate(arr.begin(), arr.end(), [](){return rand()%700;});
    std::sort(arr.begin(), arr.end());
    std::copy(arr.begin(), arr.end(), std::ostream_iterator<int>(std::cout, "\t"));
    std::cout<<"--------"<<std::endl;
    std::sort(arr.begin(), arr.end(), std::greater<int>());
    std::copy(arr.begin(), arr.end(), std::ostream_iterator<int>(std::cout, "\t"));
    std::system("pause");
    return 0;
}
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
23.09.2010, 02:17     Заполнить массив случайными числами по возрастанию и убыванию #5
niXman, но задание было про массив, а не вектор. И 0x - жестко для студенческой задачи.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
23.09.2010, 02:20     Заполнить массив случайными числами по возрастанию и убыванию #6
gooseim, ага, недоглядел. спать пора...
Shaper
22 / 22 / 2
Регистрация: 05.05.2010
Сообщений: 82
23.09.2010, 16:06     Заполнить массив случайными числами по возрастанию и убыванию #7
Зачем так сложно? Сортировка какая-то. Вот:

C++
1
2
3
4
5
6
7
8
9
#define N 10;
 
main () 
{
  int a[N], i;
  a[0]=rand()%(700/N);
  for (i=1, i<N; i++) 
    a[i]=a[i-1]+rand()%(700/N);
}
Всё! Генерация и сортировка в одном флаконе! Это было по возрастанию. А вот по убыванию:

C++
1
2
3
4
5
6
7
8
9
#define N 10;
 
main () 
{
  int a[N], i;
  a[N-1]=rand()%(700/N);
  for (i=N-2, i>=0; i--) 
    a[i]=a[i+1]+rand()%(700/N);
}
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
23.09.2010, 16:27     Заполнить массив случайными числами по возрастанию и убыванию #8
Shaper, Почему сложно то? Просто STL. Это не значит сложно. Это значит удобнее.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
23.09.2010, 16:41     Заполнить массив случайными числами по возрастанию и убыванию #9
Shaper, супер!
логика сильна
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2010, 12:22     Заполнить массив случайными числами по возрастанию и убыванию
Еще ссылки по теме:

C++ Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию
C++ Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по возрастанию
C++ Заполнить массив случайными числами в диапазоне
C++ Заполнить массив неодинаковыми случайными числами

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

Или воспользуйтесь поиском по форуму:
Shaper
22 / 22 / 2
Регистрация: 05.05.2010
Сообщений: 82
27.09.2010, 12:22     Заполнить массив случайными числами по возрастанию и убыванию #10
Цитата Сообщение от Lavroff Посмотреть сообщение
Shaper, Почему сложно то? Просто STL. Это не значит сложно. Это значит удобнее.
Я не о языке. Алгоритм посмотри.
Yandex
Объявления
27.09.2010, 12:22     Заполнить массив случайными числами по возрастанию и убыванию
Ответ Создать тему
Опции темы

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