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

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

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

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

30.01.2011, 21:46. Просмотров 373. Ответов 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2011, 21:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнение случайных элементов матрицы (C++):

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

Матрицы. Найти и распечатать сумму элементов 5-го столбца матрицы А и сумму элементов последней строки матрицы В - C++
Даны две матрицы А(mxn)и В(m1xn1).программа находит и распечатывает сумму элементов 5-го столбца матрицы А и сумму элементов последней...

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

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

Массив: Найти среднее арифметическое элементов матрицы и сумму элементов тех строк матрицы, в которых отрицателен элемент главной диагонали. - C++
Ребят не понимаю я с++ Дали создать программу Помогите пожалуйста Найти среднее арифметическое элементов матрицы и сумму элементов...

Для заданной матрицы размера NхN найти такие k и n, что сумма элементов k- столбца матрицы совпадает с суммой элементов n- го строки - C++
Для заданной матрицы размера NхN найти такие k и n, что сумма элементов k- столбца матрицы совпадает с суммой элементов n- го строки. Найти...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 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;
  
        }
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2011, 22:20
Привет! Вот еще темы с ответами:

Найти сумму положительных элементов матрицы А, количество нулевых элементов матрицы B - C++
• Даны матрицы A, B. Найти сумму положительных элементов матрицы А, количество нулевых элементов матрицы B. • Упорядочить матрицу А по...

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

Заполнение матрицы - C++
Существует матрица n*m и отдельная функция для ввода input. В main я написал: float B; input(B); А в функции ввода: for (int...

С++ заполнение матрицы - C++
Нужно сформировать такую матрицу : 11 12 13 14 15 10 9 8 7 6 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 Вообще не понимаю как мы...


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

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

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