Загрузка...

задача по с++

Тема в разделе C/C++ создана пользователем Shify 26 фев 2017. 648 просмотров

Загрузка...
  1. Shify
    Shify Автор темы 26 фев 2017 9 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 26 фев 2017 75 14 ноя 2016
    Делай проверку числа на то, есть ли оно уже в массиве. Вроде должно сработать
     
  3. ZLOYSERGUNYA
    ZLOYSERGUNYA 26 фев 2017 save what remains 789 4 янв 2017
    Вот, должно работать) если нет, то отпишись:
    Код
    #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 Автор темы 26 фев 2017 9 6 фев 2017
    блин, понимаю что ты опытный, но мне сложновато разобрать, можешь объяснить
     
  5. Shify
    Shify Автор темы 26 фев 2017 9 6 фев 2017
    по проще как то можно записать?))
     
  6. ZLOYSERGUNYA
    ZLOYSERGUNYA 26 фев 2017 save what remains 789 4 янв 2017
    Ну, вот вся главная функция. Где именно не понятно?
    Код
     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
    Делали подобное на Си, вот решение
    Код

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