Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
#1

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

21.09.2010, 13:30. Просмотров 980. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2010, 13:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывести случайный элемент массива со значением 1 (C++):

Вывести случайный элемент массива
Ребята подскажите пожалуйста как можно с массива случайным образом вывести...

Перед каждым положительным значением массива вставить элемент с нулевым значением
Дан массив размера N. Перед каждым положительным значением массива вставить...

Поменять в матрице случайный элемент в первой строке и случайный элемент в последней строке
Пользователь вводит массив 3 строки 4 столбца. Программа меняет местами...

Как из массива брать случайный его элемент?
как из массива брать случайный его элемент???

Перед каждым положительным элемент массива вставить элемент с нулевым значением
6)Дан массив размера N. Перед каждым положительным элемент массива вставить...

В матрице поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением
В данной действительной матрице размера 3*3 поменять местами строку, содержащую...

2
Евгений М.
1047 / 986 / 98
Регистрация: 28.02.2010
Сообщений: 2,858
Завершенные тесты: 2
21.09.2010, 13:46 #2
Вам нужно создать массив индексов таких элементов, у которых значение в массиве a равен 1.
Далее с ним работать.
Если таких элементов нет - сообщить.
1
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
21.09.2010, 14:11  [ТС] #3
Евгений М., точно, а то я уже что-то хитромудрое начал изобретать Спасибо большое!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2010, 14:11
Привет! Вот еще темы с решениями:

Поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением
В данной действительной матрице размера 6х9 поменять местами строку,...

Функции обработки массива (определить произведение элементов массива, заменить модулем все элементы массива, уничтожить элемент с заданным значением)
Вот задания,не могу сделать ни одного из них,буду благодарен за помощь. ...

Каждый элемент массива A[k] заменить средним значением первых k элементов массива
Дан числовой массив A размера N. Каждый элемент массива A заменить средним...

дан целочисленный массив Х из 30-ти элементов. найти в нем элемент с максимальным значением, обменять значениями найденный элемент массива с элементов
дан целочисленный массив Х из 30-ти элементов. найти в нем элемент с...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru