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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
4ance
1 / 1 / 0
Регистрация: 02.11.2010
Сообщений: 78
#1

Заполнение случайных элементов матрицы - C++

30.01.2011, 21:46. Просмотров 369. Ответов 1
Метки нет (Все метки)

Заполняю случайные элементы доски, а не элементы доски случайными элементами ( на шахматной доске генерирую фигуры в рандомных местах) - Каждой клетке присваиваю число от 0 до 63, затем переменной Enemy присваюваю рандомное число в этом промежутке, и ставлю этого Enemy(присваиваю соответствующей клетке на доске число 65) на шахматную доску.
Проблема в том, что рандом может сгенерировать допустим 2 раза подряд число 13. После первого раза на нём уже будет стоять число 65, присваивание не произойдёт и я не поставлю фигуру на место. Как обойти?
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <ctime>
 
using namespace std;
 
int EnemyNumber, Enemy;
int Doska[ 8 ][ 8 ];
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Vvedite koli4esctvo vrajeskih figur:\n";
    cin >> EnemyNumber;
 
    int Zapolnenie = 0; 
    for ( int i = 0; i < 8; i++ )
    {
        for ( int j = 0; j < 8; j++ )
        {
            Doska[ i ][ j ] = Zapolnenie;       
            Zapolnenie++;
        }
    }
    srand(time(0));
    for ( int p = 0; p < EnemyNumber; p++ )
    {
        Enemy = rand() % 64;
        for ( i = 0; i < 8; i++ )
        {
            for ( j = 0; j < 8; j++ )
            {
                if ( Doska[ i ][ j ] == Enemy )
                    Doska[ i ][ j ] = 65;
            }
        
        }
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2011, 21:46     Заполнение случайных элементов матрицы
Посмотрите здесь:

Заполнение матрицы целыми числами с помощью генератора случайных чисел - C++
1.Матрицу 8*8 заполнить целыми числами с помощью генератора случайных чисел. 2.Найти определитель. 3.Найти min и max элементы матрицы. ...

Получить новую матрицу умножением элементов первой матрицы на наибольшее из значений элементов соответствующий строки второй матрицы - C++
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу умножением элементов каждой строки первой матрицы на...

Заполнение матрицы! - C++
Не могу вывести матрицу...то есть вначале её ввести а потом вывести,или я что-то не так делаю? мой код: #include &lt;iostream&gt; ...

Заполнение матрицы по спирали - C++
Дано натуральное N (1&lt;=N&lt;=10). Заполнить матрицу порядка N*N целыми числами 0, 1, 2, 3, …, N^2–1 по спирали(по часовой стрелке). Важное...

Заполнение матрицы по правилу - C++
Привет, делаю лабораторную, нужно заполнить матрицу по заданному правилу: 19 20 21 22 23 24 18 17 16 15 14 13 7 8 9 10 11 12 ...

Заполнение матрицы зигзагом - C++
Здравствуйте, уже второй день пытаюсь решить вариант &quot;Г&quot; из этого задания. В интернете есть варианты решений, но мой уровень в знании C++...

Задача на заполнение матрицы(С++) - C++
Доброго времени суток Может ли мне кто-нибудь помочь решить задачу: Прямоугольную матрицу размерами не более, чем 20х20 (вводятся с...

Заполнение квадратной матрицы - C++
Здравствуйте. Нужно написать программу заполнения правого верхнего треугольника квадратной матрицы, включая диагональ, последовательностью...

Заполнение символьной матрицы - C++
Здравствуйте, У меня такой вопрос, хочу сделать char матрицу, но к сожалению, оно почему -то отображает не верно,,, заполняет так как...

Заполнение матрицы спиралью - C++
Доброго времени суток На входе - N, на выходе - матрица NxN, заполненная спиралью(см. пример). input.txt - 5 output.txt: 1 2 3 4...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.01.2011, 22:20     Заполнение случайных элементов матрицы #2
Можно например так:

Цитата Сообщение от 4ance Посмотреть сообщение
for ( int p = 0; p < EnemyNumber; p++ )
{
Enemy = rand() % 64;
for ( i = 0; i < 8; i++ )
{
for ( j = 0; j < 8; j++ )
{
if ( Doska[ i ][ j ] == Enemy )
Doska[ i ][ j ] = 65;
}
}
}
заменить на:

C++
1
2
3
4
5
6
7
8
       for ( int p = 0; p < EnemyNumber; p++ )
        {
                Enemy = rand() % 64;
                while(Doska[Enemy/8][Enemy%8]==65)
                    Enemy = rand() % 64;
                Doska[Enemy/8][Enemy%8]=65;
  
        }
Yandex
Объявления
30.01.2011, 22:20     Заполнение случайных элементов матрицы
Ответ Создать тему
Опции темы

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