Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
#1

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

04.02.2012, 00:27. Просмотров 883. Ответов 14
Метки нет (Все метки)

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

Дан двумерный массив размером 5 * 8, заполненный случайным образом. Вставить перед всеми строками, первый элемент которых делится на3,вставить....
Дан двумерный массив размером 5 * 8, заполненный случайным образом. Вставить...

Заполнить двумерный динамический массив случайным образом
Написать функции для работы с двумерным динамическим массивом: - создать...

Случайным образом заполнить двумерный массив (с++ помогите)
Случайным образом заполнить двумерный массив. Каждую строку упорядочить по...

Дан двумерный массив размером 5х6, заполненный случайным образом
Дан двумерный массив размером 5х6, заполненный случайным образом. Заменить...

Дан двумерный массив размером nxm, заполненный случайным образом
23. Дан двумерный массив размером nхm, заполненный случайным образом....

Создать двумерный массив, каждый элемент которого задается случайным образом
Если вкратце, нужно создать двумерный массив, каждый элемент которого задается...

14
MrCold
859 / 757 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
04.02.2012, 01:09 #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;
}
1
Мида
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
04.02.2012, 01:22  [ТС] #3
C++
1
int val = rand()% 9 + 1;
//это мы ловим место \той единицы?
и чуть ниже:
C++
1
arr[i][j] + 1;
??? можете объяснить почему так?
0
MrCold
859 / 757 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
04.02.2012, 01:27 #4
break; не дописал !

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

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

Добавлено через 1 минуту
NoMasters? что Вы имеете ввиду?
0
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,177
04.02.2012, 02:33 #9
Я имею в виду, что выражение
C++
1
arr[i][j] + 1;
Имеет мало смысла, т.к. его результат никуда не записывается.
2
R136a1
143 / 112 / 36
Регистрация: 14.04.2011
Сообщений: 261
04.02.2012, 02:39 #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;
}
1
MrCold
859 / 757 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
04.02.2012, 02:40 #11
NoMasters, правильно ,правильно! Ты прав! Отвлекаюсь .


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

Заполнить двумерный массив расположив заданное количество единиц случайным образом
Ребята , nомогите додумать , есть двумерный динамический массив , заnолняется...

По запрашиваемому количеству строк и столбцов нужно сформировать случайным образом двумерный массив
Помогите пожалуйста. По запрашиваемому количеству строк и столбцов нужно...

Двумерный массив: Добавить методы "ДайЗначениеЯчейки", "УстановиЗначениеЯчейки"
Нужно добавить методы ДайЗначениеЯчейки(индексРяда, индексКолонки),...

Случайным образом заполнить двумерный массив фиксированного размера целыми числами в заданном диапазоне
Кто знает как решить задачу на С++, при помощи двумерного массива? Написать...


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

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

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