Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 13
1

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

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

Author24 — интернет-сервис помощи студентам
В двумерный массив определенного диапазона (рандомная формула не проблема) нужно вставить число 1, причем случайным образом. Есть ли какая-то специальная формула, или после создания массива, таким же образом "влепить" в него 1 ? Что-то не могу понять.....
Пы.сы. под формулой имеется ввиду rand()%(min-max+1)+min...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2012, 00:27
Ответы с готовыми решениями:

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

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

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

Массив: Случайным образом заполнить двумерный массив размерностью 3х4 цифрами от -20 до 10
Помогите пожалуйста с задачей Написать программу, которая случайным образом заполняет двумерный...

14
873 / 771 / 173
Регистрация: 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
873 / 771 / 173
Регистрация: 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
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
04.02.2012, 02:14 6
Мы ловим случайное число val. Если оно равно номеру строки прибавляем к массиву единицу.

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

Добавлено через 1 минуту
NoMasters? что Вы имеете ввиду?
0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
04.02.2012, 02:33 9
Я имею в виду, что выражение
C++
1
arr[i][j] + 1;
Имеет мало смысла, т.к. его результат никуда не записывается.
2
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
873 / 771 / 173
Регистрация: 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
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2012, 13:03
Помогаю со студенческими работами здесь

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

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

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

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

Заполнить случайным образом целыми числами из диапазона [-300; 500] двумерный массив
Опытные форумчане, помогите, пожалуйста, с задачкой. Составить программу на языке С++, в которой...

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

Дан двумерный массив размером nm, заполненный случайным образом. Найти сумму отрицательных элементов
Помогите, пожалуйста. Дан двумерный массив размером nm, заполненный случайным образом. Найти...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru