Установка случайного элемента двумерного массива
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
-
- Сообщения: 77
- Зарегистрирован: 24 мар 2005, 11:00
Си.
Парни и девки, подскажите плиз как мне в двумерный массив размером arr[10][10] вставить случайным образом например знак звёздочку "*",а остальные ячейки будут содержать просто пробелы....
Очень надо,срочно....
Заранее благодарен
Парни и девки, подскажите плиз как мне в двумерный массив размером arr[10][10] вставить случайным образом например знак звёздочку "*",а остальные ячейки будут содержать просто пробелы....
Очень надо,срочно....
Заранее благодарен
-
- Сообщения: 497
- Зарегистрирован: 17 фев 2004, 11:26
- Откуда: Ленинград (который Город на Неве)
- Контактная информация:
Код: Выделить всё
srand( (unsigned)time( NULL ) );
char arr[10][10];
for( int i=0; i < 10; i++ )
memset( a[i], ' ', 10 );
arr[ rand() * 10.f / RAND_MAX ][ rand() * 10.f / RAND_MAX ] = '*';
"Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!" (c)
viel spass, DeeJayC
viel spass, DeeJayC
-
- Сообщения: 77
- Зарегистрирован: 24 мар 2005, 11:00
Спасибо!!!
А если количество звёздочек будет варьироваться в зависимости от того сколько пользователь захочет(при вводе в scanf),но чтобы не превышало допустим 5 штук???
А если количество звёздочек будет варьироваться в зависимости от того сколько пользователь захочет(при вводе в scanf),но чтобы не превышало допустим 5 штук???
-
- Сообщения: 497
- Зарегистрирован: 17 фев 2004, 11:26
- Откуда: Ленинград (который Город на Неве)
- Контактная информация:
А добавить цикл и проверку перед заполнением слабо? ( проверка необходима для
того, чтобы быть увереным в том, что звёздочка не попала ещё раза в ту же ячейку).
того, чтобы быть увереным в том, что звёздочка не попала ещё раза в ту же ячейку).
"Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!" (c)
viel spass, DeeJayC
viel spass, DeeJayC
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Нужно последнюю строку предоставленного кода выполнить в цикле, причём проверяя, чтобы тот элемент, который мы выставяем, уже не содержал звёздочку.
P.S. Название темы изменено. Господин qwertyuiop, постарайтесь хотя бы частично соблюдать правила, с которыми вы нибы-то согласились, зарегистрировав логин на форуме. Название топика должно быть информативным. Это экономит время людям, которые вам помогают.
Код: Выделить всё
srand( (unsigned)time( NULL ) );
char arr[10][10];
for( int i=0; i < 10; i++ )
memset( a[i], ' ', 10 );
int nStarCount;
cin >> nStarCoutn;
int nStars = 0;
while (nStarCount < nStarCount)
{
int ri = rand() * 10.f / RAND_MAX;
int rj = rand() * 10.f / RAND_MAX
if (arr[ri][rj] == '*')
continue;
arr[ri][rj] = '*';
++nStars;
}
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
-
- Сообщения: 77
- Зарегистрирован: 24 мар 2005, 11:00
Спасибо! Вот только не понятны две строки
функция memset()
и
cin >> nStarCoutn;
Что они делают?
функция memset()
и
cin >> nStarCoutn;
Что они делают?
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
memset - функция, которая заполняет память, начиная с адреса, указанного первым параметром, причём заполняет содержимым второго параметра и заполняет столько ячеек памяти, сколько указано в третьем параметре.
cin - обект, который позволяет производить ввод данных из консоли (сокращение console input). cin >> nStarCount обозначает "считать из консоли целое число и поместить его в переменную nStarCount.
cin - обект, который позволяет производить ввод данных из консоли (сокращение console input). cin >> nStarCount обозначает "считать из консоли целое число и поместить его в переменную nStarCount.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
-
- Сообщения: 77
- Зарегистрирован: 24 мар 2005, 11:00
Ясно!!!
Сейчас у меня в голове всё встало на свои места,
Всем спасибо!!!
Сейчас у меня в голове всё встало на свои места,
Всем спасибо!!!