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

Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100 - C++

Восстановить пароль Регистрация
 
n1k0
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 2
27.01.2014, 12:27     Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100 #1
Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100. Число n вводит пользователь. Последний отрицательный элемент поменять местом с максимальным элементом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2014, 12:27     Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100
Посмотрите здесь:

C++ Записать в массив значения функции f (x) = asin(x /100) , при x = 1,2,...,100 и вывести его на экран
Вывести на экран таблицу стоимости яблок в диапозоне от 100 г. до 1 кг. с шагом 100 г C++
C++ Сгенерировать и вывести на экран массив из целого числа n случайных чисел
C++ Дан целочисленный массив А задается с экрана либо генерируется в пределах -100 до 100. Найти числа b1 b2 …bn равные суммам элементов строк
C++ Датчиком случайных чисел сгенерируйте случайное натуральное число в интервале от 100 до 900. Определите большую цифру полученного числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sasha800
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 5
27.01.2014, 14:09     Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100 #2
Добавлено через 1 минуту
Вот
C++ (Qt)
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
49
50
51
52
53
54
55
#include "stdafx.h"
#include "conio.h"
#include "iostream"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int *arr, size = 0;
    cout << "Input size of array" << endl;
    cin >> size;
    cout << "Array" << endl;
    arr = new int [size];
    for(int i = 0; i < size; i++)
    {   
        arr[i] = rand() % 200 -100;
        cout << arr [i]<<" ";
    }
    cout << endl;
 
 
    int max = 0, pos_max = 0;
        for(int i = 0; i < size; i++)
    {
        if(arr[i] > max)
        {
            max = arr[i];
            pos_max=i;
        }
    }
        
 
    int pos_otr = 0, last_otr = 0;
    for(int i = 0; i < size; i++)
    {
        if(arr[i] < 0)
        {
            pos_otr = i;
            last_otr = arr[i];
        }
    }
        arr[pos_otr] = max;
        arr[pos_max] = last_otr;
 
 
    for(int i = 0; i < size; i++)
    {       
        cout << arr [i]<<" ";
    }
    cout << endl;
 
system("pause"); 
 
    return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4924 / 2667 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
27.01.2014, 14:53     Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100 #3
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 <algorithm>
#include <iostream>
#include <iterator>
#include <random>
#include <vector>
 
int main()
{
    int N;
    std::mt19937 gen {std::random_device()() };
    std::uniform_int_distribution<int> dist(-100, 100);
    auto print_v = [](const std::vector<int> &v)
    {
        std::copy(v.cbegin(), v.cend(), std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
    };
 
    std::cout << "N=";
    std::cin >> N;
    std::vector<int> vec(N);
 
    std::generate(vec.begin(), vec.end(), [&dist, &gen] {return dist(gen); });
    std::cout << "Before:\n";
    print_v(vec);
 
    auto it = std::find_if(vec.rbegin(), vec.rend(), [](const int x) { return x < 0; });
    if (it != vec.rend())
    {
        std::swap(*it, *std::max_element(vec.begin(), vec.end()));
        std::cout << "After:\n";
        print_v(vec);
    }
    else
        std::cout << "No negative elements, nothing to swap\n";
}
StailGot
27 / 22 / 6
Регистрация: 25.08.2013
Сообщений: 41
27.01.2014, 23:44     Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100 #4
C++ (Qt)
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 <algorithm>
#include <functional>
#include <iostream>
#include <random>
 
int main()
{
  using namespace std;
  using type   = int;
  using data_t = vector<type>;
 
  auto println = []( const data_t & data ) {
    for ( const auto & val : data ) cout << val << " "; cout << endl;
  };
 
  random_device engine;
  uniform_int_distribution<type> distribution( -100, 100 );
  
  size_t N {};
  cout << "put N: ";
  cin >> N;
 
  data_t data( N );
  generate_n( begin(data), N, bind(distribution, ref(engine)) );
  println( data );
 
  auto last_elem = find_if( data.rbegin(), data.rend(), [](type val) {return val < 0;} );
  if ( last_elem == data.rend() )
    cout << "Nothing changed.";
  else iter_swap( last_elem, max_element(begin(data), end(data)) ),
         println( data );
}
MrGluck
28.01.2014, 00:56     Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100
  #5

Не по теме:

а в чем принципиальное отличие от моего алгоритма?

Yandex
Объявления
28.01.2014, 00:56     Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100
Ответ Создать тему
Опции темы

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