Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Каллейдоскоп (двумерный массив) 
V
    Опции темы
Creed81
Дата 10.6.2009, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 28.5.2009

Репутация: нет
Всего: нет



Задача- создать двумерный символьный массив размера M на N, заполнить рандомно верхний левый угол звездочками (К - шт.). Далее выполнить зеркалирование-отразить координаты звездочек в другие участки масива. Произвести очистку экрана, вывести массив, произвести задержку, далее бесконечный цикл.
Код

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>

const char STAR = '*';
const int STAR_NUMBER = 20;
const int DIMENSION = 20;

int main()
{
char kal[DIMENSION][DIMENSION];
srand(time(0));

for(int y=0; y<DIMENSION; y++)  // заполнить пробелами
    for(int x=0; x<DIMENSION; x++)
        kal[y][x] = ' ';

int x,y=0;
for (int s=1;s<=STAR_NUMBER;s++) 
{
    x=rand()%(DIMENSION/2);
    y=rand()%(DIMENSION/2);
    if (kal[y][x]==STAR)
        s--;
    else
        kal[y][x] = STAR;    
}


int z=DIMENSION-1;
for(int a=0; a<DIMENSION/2; a++)
{
    z=DIMENSION-1;
    for(int b=0;b<DIMENSION/2; b++)
    {
        kal[a][z] = kal[a][b];
        z--;
    }
}           

for (int i=0; i<DIMENSION; i++,puts(""))  // вывод массива на экран
for (int j=0; j<DIMENSION; j++) 
printf("%c",kal[i][j]);



В верхний правый и нижний левый участок я координаты отразил, а вот с нижним правым не могу разобраться...совсем затупил что-то. 
Прошу помощи. Заранее спасибо.
PM MAIL   Вверх
Creed81
Дата 10.6.2009, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 28.5.2009

Репутация: нет
Всего: нет



Все сам разобрался)))
PM MAIL   Вверх
mes
Дата 10.6.2009, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Creed81 @  10.6.2009,  10:13 Найти цитируемый пост)
В верхний правый и нижний левый участок я координаты отразил, а вот с нижним правым не могу разобраться...совсем затупил что-то.


Код

for (unsigned i=0; i<N/2; ++i)
for (unsigned j=0; j<M/2; ++j)
{
      A[N-i-1][j]     = A[i][j];  // отразили относительно вертикали  // вправо
      A[N][M-j-1]     = A[i][j]; //  относительно горизонтали  // вниз
      A[N-i-1][М-j-1] = A[i][j]; // относительно центра // вниз-вправо
}


Добавлено через 1 минуту и 32 секунды
Цитата(Creed81 @  10.6.2009,  10:44 Найти цитируемый пост)
Все сам разобрался))) 

 smile 

Это сообщение отредактировал(а) mes - 10.6.2009, 11:46


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.