Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вывести случайный элемент массива со значением 1 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ На сколько дней студенту хватит стипендии S, если он тратит N руб. в день и его расходы увеличиваются в X раз? http://www.cyberforum.ru/cpp-beginners/thread167797.html
На сколько дней студенту хватит стипендии S, если он тратит N р. в день и его расходы каждый день увеличиваются в X раз?
C++ Вывести последовательность из N чисел Фибоначчи (1, 1, 2, 3, 5, 8, 13…). Вывести последовательность из N чисел Фибоначчи (1, 1, 2, 3, 5, 8, 13…). http://www.cyberforum.ru/cpp-beginners/thread167789.html
C++ Вывод графика функции
напишите прогу рисования графика функции вида y=f(x) на языке С график функции может быть любой например y=sin x , y=cos x, y=tg x так чтоб работал в среде dev c++
C++ Написать программу, выдающую значение True, если цифры заданного трехзначного числа образуют арифметическую прогрессию.
Написать программу, выдающую значение True, если цифры заданного трехзначного числа образуют арифметическую прогрессию.
C++ Вызов конструктора базового класса http://www.cyberforum.ru/cpp-beginners/thread167731.html
Здравствуйте! Я вот начал изучать C# и немножечко освежил ООП. Но вот у меня вопрос. Я точно помню, что класс-наследник (конструкторы не наследуются) в своём конструкторе чтобы не переписывать весь...
C++ Решение линейного уравнения методами "вилки" и секущих Никогда не прогал на Си, только на Бэйсике и Вижуал Бэйсике, а завтра прак в универе. Помогите написать программы 1)Которая считает количество байт переменной с помощью функции size of 2)Которая... подробнее

Показать сообщение отдельно
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553

Вывести случайный элемент массива со значением 1 - C++

21.09.2010, 13:30. Просмотров 955. Ответов 2
Метки (Все метки)

Такая штука: нужно вывести рандомный элемент массива, значение которого = 1. Ищу для этого в цикле рандомные значения строки/столбца и сравниваю элемент с 1. Естественно это плохо, т.к. с помощью rand() постоянно выводятся повторяющиеся значения, и для обработки, например, массива 100x100 может случится до 40.000 проходов. Вот код:
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
int main()
{      
        #include <iostream.h>
    const int n = 100;
    int i,j,x,y;
 
    int **a=new int*[n];
    for(i=0;i<n;i++)
        a[i]=new int[n];
 
 
    for(i = 0; i < n; i++)
       for(j = 0; j < n; j++)
          a[i][j]=0;
 
    a[n/2][n/2]=1; // предположим такой элемент один, находится посередине
    
    srand(time(NULL));
    while(true)
    {
       x=rand()%n;
       y=rand()%n;
 
       if(a[x][y]==1)
       {
          cout<<"x = "<<x<<" y = "<<y<<" element = "<<a[x][y];
              break;
       }
    }
 
    for (i=0;i<n;i++)
         delete []a[i];
    delete []a;
 
 
    cout<<endl;
    system("pause");
    return 0;
}
Подскажите, в какую сторону думать? Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru