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

Как вставить в двумерный массив "1" случайным образом? - C++

Восстановить пароль Регистрация
 
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
04.02.2012, 00:27     Как вставить в двумерный массив "1" случайным образом? #1
В двумерный массив определенного диапазона (рандомная формула не проблема) нужно вставить число 1, причем случайным образом. Есть ли какая-то специальная формула, или после создания массива, таким же образом "влепить" в него 1 ? Что-то не могу понять.....
Пы.сы. под формулой имеется ввиду rand()%(min-max+1)+min...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2012, 00:27     Как вставить в двумерный массив "1" случайным образом?
Посмотрите здесь:

Случайным образом заполнить двумерный массив (с++ помогите) C++
C++ Дан двумерный массив размером 5 * 8, заполненный случайным образом. Вставить перед всеми строками, первый элемент которых делится на3,вставить....
C++ Дан двумерный массив размером 5х6, заполненный случайным образом
C++ Дан двумерный массив размером nxm, заполненный случайным образом
Создать двумерный массив, каждый элемент которого задается случайным образом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
04.02.2012, 01:09     Как вставить в двумерный массив "1" случайным образом? #2
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
#include <iostream>
#include <time.h>
#include <conio.h>
#define N 5
#define M 5
 
int main(){
    int arr[N][M];
int i, j;
srand(time(NULL));
 
    for(i = 0; i < N;i++){
       for(j = 0; j < M;j++){
        arr[i][j]= rand()% 100 + 10;// ZAPOLNYAEM MASSIV
       }}
  int val = rand()% 9 + 1;
 
 
     
    for(i = 0; i < N;i++){
        for(j = 0; j < M;j++){
       if(i == val)
        arr[i][j] + 1;      /////////////////////
        }}
    _getch();
    return 0;
}
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
04.02.2012, 01:22  [ТС]     Как вставить в двумерный массив "1" случайным образом? #3
C++
1
int val = rand()% 9 + 1;
//это мы ловим место \той единицы?
и чуть ниже:
C++
1
arr[i][j] + 1;
??? можете объяснить почему так?
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
04.02.2012, 01:27     Как вставить в двумерный массив "1" случайным образом? #4
break; не дописал !

C++
1
2
3
4
  if(i == val)
        arr[i][j] + 1;break;      /////////////////////
                }}
        _getch();
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
04.02.2012, 01:30  [ТС]     Как вставить в двумерный массив "1" случайным образом? #5
ага... теперь понятнее)))
спасибо))))))
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
04.02.2012, 02:14     Как вставить в двумерный массив "1" случайным образом? #6
Мы ловим случайное число val. Если оно равно номеру строки прибавляем к массиву единицу.

Добавлено через 44 минуты
Еще хотел добавить что наше рандомное число не может быть больше числа строк массива,
т.е. val = rand()% (число строк) + 1;
Так будет правильнее.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
04.02.2012, 02:21     Как вставить в двумерный массив "1" случайным образом? #7
MrCold, может быть ты имел в виду += всё-таки?
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
04.02.2012, 02:30  [ТС]     Как вставить в двумерный массив "1" случайным образом? #8
Спасибо огромное))сейчас попробую)
вроде въехала.
А где можно почитать что-то по этому поводу? Или Вы сами додумались?

Добавлено через 1 минуту
NoMasters? что Вы имеете ввиду?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
04.02.2012, 02:33     Как вставить в двумерный массив "1" случайным образом? #9
Я имею в виду, что выражение
C++
1
arr[i][j] + 1;
Имеет мало смысла, т.к. его результат никуда не записывается.
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
04.02.2012, 02:39     Как вставить в двумерный массив "1" случайным образом? #10
ещё вариантик
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main()
{
        const int row = 5;
        const int column = 10;
        int m[row][column] = {0};
 
        srand(time(NULL));
 
        m[rand() % row][rand() % column] = 1;
 
        for(int i = 0; i < row; i++)
        {
                for(int j = 0; j < column; j++)
                        std::cout << std::setw(3) << m[i][j];
 
                std::cout << std::endl;
        }
 
        return 0;
}
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
04.02.2012, 02:40     Как вставить в двумерный массив "1" случайным образом? #11
NoMasters, правильно ,правильно! Ты прав! Отвлекаюсь .


arr[i][j] += 1;
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
04.02.2012, 02:41  [ТС]     Как вставить в двумерный массив "1" случайным образом? #12
оо)) поспать мне сегодня не придётся!)))
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
04.02.2012, 02:46     Как вставить в двумерный массив "1" случайным образом? #13
Мида, что-то непонятно?
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
04.02.2012, 02:59  [ТС]     Как вставить в двумерный массив "1" случайным образом? #14
Я хоть и начинающая в этой сфере, но всё понятно, пасибки). Буду издеваться над обоими вариантами ( там в задании ещё длинное продолжение перемещений этой единицы....)
Вот где только эти рандомные формулы берутся?? неужели народ сам творит?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2012, 13:03     Как вставить в двумерный массив "1" случайным образом?
Еще ссылки по теме:

Дан одномерный массив целых чисел, заполненный случайным образом числами из промежутка [-a;b]. Вставить элемен C++
Двумерный массив: Добавить методы "ДайЗначениеЯчейки", "УстановиЗначениеЯчейки" C++

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

Или воспользуйтесь поиском по форуму:
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
05.02.2012, 13:03  [ТС]     Как вставить в двумерный массив "1" случайным образом? #15
Вот ещё вариантец нарисовался, может пригодится кому...
//Заполнить массив A[y][x] случайными числами от 2 до 9, поставить цифру 1 в произвольном месте

//
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <conio.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 const int x=20;
 const int y=20;
 int randPosX, randPosY, posX, posY, t=clock(),ch,temp;
 bool b=true;
 int A[y][x], tempA[y][x];
 
 setlocale(LC_ALL, "rus");
 
 srand(time(0));
 
 //Заполняем массив A[y][x] случайными числами от 2 до 9
 for(int i=0;i<y;i++)
 {
  for(int j=0;j<x;j++)
  {
   A[i][j]=2+rand()%8;
  }
 }
 
 //В случайной позиции вставляем 1
 randPosX=rand()%20;
 randPosY=rand()%20;
 A[randPosY][randPosX]=1;
 
 
 //Выводим массив на экран
 for(int i=0;i<y;i++)
 {
  for(int j=0;j<x;j++)
  {
   cout<<A[i][j]<<" ";
  }
  cout<<endl;
 }
 
 //Ищем координаты единицы в массиве и выводим их на экран
 for(int i=0;i<y;i++)
 {
  for(int j=0;j<x;j++)
  {
   if(1==A[i][j])
   {
    posX=j;
    posY=i;
   }
  }
 }
 cout<<endl<<"Единица находится в "<<posY+1<<"-й строке, "<<posX+1<<"-м столбце."<<endl;
 
 return 0;
}
Yandex
Объявления
05.02.2012, 13:03     Как вставить в двумерный массив "1" случайным образом?
Ответ Создать тему
Опции темы

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