Загрузка...

c++ task

Thread in C/C++ created by Shify Feb 26, 2017. 681 view

  1. Shify
    Shify Topic starter Feb 26, 2017 9 Feb 6, 2017
    Используя датчик случайных чисел, заполнить массив из двадцати элементов неповторяющимися числами. как делать?)) все что я пока написал
    srand(time(0));
    const int n = 20;
    int m[n];
    for (int i = 0; i < n; i++)
    {
    m = rand() % 10;
    cout << m << "";
    }
    if ()
     
  2. Valeha
    Valeha Feb 26, 2017 75 Nov 14, 2016
    Делай проверку числа на то, есть ли оно уже в массиве. Вроде должно сработать
     
  3. ZLOYSERGUNYA
    ZLOYSERGUNYA Feb 26, 2017 save what remains 787 Jan 4, 2017
    Вот, должно работать) если нет, то отпишись:
    Code
    #include <iostream>
    #include <ctime>
    using namespace std;

    int main ()
    {
    setlocale (LC_CTYPE, "Russian");

    int array1 [20];

    cout<<"Заполните массив, неповторяюищимися числами: \n";

    for (int i = 0; i < 20; i++)
    {
    cin>>array1 [i];
    for ( int i_1 = 1; i - i_1 > 0; i_1++)
    {
    if (array1 [i] == array1 [i - i_1])
    {
    i--;
    cout<<"Такое число уже было, повторите ввод: ";
    }
    }
    }
    for (int i = 0; i < 20; i++)
    {
    cout<<array1 [i]<<" ";
    }
    }
     
  4. Shify
    Shify Topic starter Feb 26, 2017 9 Feb 6, 2017
    блин, понимаю что ты опытный, но мне сложновато разобрать, можешь объяснить
     
  5. Shify
    Shify Topic starter Feb 26, 2017 9 Feb 6, 2017
    по проще как то можно записать?))
     
  6. ZLOYSERGUNYA
    ZLOYSERGUNYA Feb 26, 2017 save what remains 787 Jan 4, 2017
    Ну, вот вся главная функция. Где именно не понятно?
    Code
     setlocale (LC_CTYPE, "Russian");

    int array1 [20];

    cout<<"Заполните массив, неповторяюищимися числами: \n";

    for (int i = 0; i < 20; i++)
    {
    cin>>array1 [i];
    for ( int i_1 = 1; i - i_1 > 0; i_1++)
    {
    if (array1 [i] == array1 [i - i_1])
    {
    i--;
    cout<<"Такое число уже было, повторите ввод: ";
    }
    }
    }
    for (int i = 0; i < 20; i++)
    {
    cout<<array1 [i]<<" ";
    }
     
  7. RaysMorgan
    RaysMorgan Feb 26, 2017 Че скажете 54,004 Mar 7, 2013
    Делали подобное на Си, вот решение
    Code

    void generate_rnd_array(int * destinationArray, int count) {
    int number, i;
    int * cache = (int*)calloc(count, sizeof(int));
    for (i = 0; i < count; i++) {
    cache[i] = 0;
    }
    printf("test");
    srand(time(NULL));
    printf("test2");
    for (i = 0; i < count; i++) {

    do
    {
    number = rand() % count;
    }
    while (cache[number] != 0);
    cache[number] = 1;
    destinationArray[i] = number;
    }
    printf("test3");
    }

    printf для дебага, можешь убрать
     
  8. Shify
    Shify Topic starter Feb 26, 2017 9 Feb 6, 2017
    for ( int i_1 = 1; i - i_1 > 0; i_1++)
    {
    if (array1 == array1 [i - i_1])
    {
    i--;
    cout<<"Такое число уже было, повторите ввод: ";
     
  9. Shify
    Shify Topic starter Feb 26, 2017 9 Feb 6, 2017
    оооо, понял, я симпу ставить могу?) спасибо ZLOYSERGUNYA и ********
     
  10. ZLOYSERGUNYA
    ZLOYSERGUNYA Feb 26, 2017 save what remains 787 Jan 4, 2017
    напиши еще 3 сообщения и сможешь ставить симпы)
     
  11. Shify
    Shify Topic starter Feb 26, 2017 9 Feb 6, 2017
    Хорошо) спасибо всем
     
  12. Shify
    Shify Topic starter Feb 26, 2017 9 Feb 6, 2017
    Еще не могу
     
  13. ZLOYSERGUNYA
    ZLOYSERGUNYA Feb 26, 2017 save what remains 787 Jan 4, 2017
    время должно пройти чутка) все у тебя будет, не боись
     
  14. VityaMashina
    Вы забыли освободить память :)
     
Loading...
Top