Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2011, 16:07   #1
Nice_nastya
 
Регистрация: 16.03.2011
Сообщений: 5
Печаль Поворот матрицы на 90 градусов. Что не так?

Здравствуйте. Скажите пожалуйста, что не так...ошибку выдает, ссылаясь на строчку randomize()...
Задание: Заполнить матрицу случайными числами. Развернуть матрицу на 90 градусов по часовой стрелке

Код:
#include <stdio.h>
#include <stdlib.h>
#define r 9
int Matr1[r][r]; /* матрица1 */
int Matr2[r][r]; /* матрица2 */
int main(void)
{
 short i, j; /* индексы */
 /* заполнение матрицы случайными числами */
 randomize(); /* инициализация rand */
 for (i=0; i<9; i++)
  for (j=0; j<9; Matr1[i][j++]=random(100));
 /* распечатка исходной матрицы */
 printf("Исходная матрица:\n");
 for (i=0; i<9; i++, printf("\n"))
  for (j=0; j<9; printf("%3d  ", Matr1[i][j++]));

 for (i=0; i<9; i++)
  for (j=0; j<9; j++)
   Matr2[j][8-i]=Matr1[i][j];
 /* распечатка полученной матрицы */
 printf("Полученная матрица:\n");
 for (i=0; i<9; i++, printf("\n"))
  for (j=0; j<9; printf("%3d  ", Matr2[i][j++]));
 return 0;
}
Nice_nastya вне форума Ответить с цитированием
Старый 22.05.2011, 16:35   #2
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

#include <time.h> забыли.
randomize(); это макрокоманда
Spawn™Production® вне форума Ответить с цитированием
Старый 22.05.2011, 16:39   #3
Nice_nastya
 
Регистрация: 16.03.2011
Сообщений: 5
По умолчанию

К сожалению не помогает, всё равно пишет ошибку в той строчке(

Пишет функция randomize () - не описана...

Последний раз редактировалось Nice_nastya; 22.05.2011 в 16:45.
Nice_nastya вне форума Ответить с цитированием
Старый 22.05.2011, 17:13   #4
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Замените randomize() на srand(time(NULL));
random придётся также реализовать через rand

В принципе вот так можно сделать...
Код:
#define randomize() srand((unsigned)time(NULL));
#define random(p) ((int)(rand()*p/RAND_MAX))
Spawn™Production® вне форума Ответить с цитированием
Старый 22.05.2011, 17:24   #5
Nice_nastya
 
Регистрация: 16.03.2011
Сообщений: 5
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define r 9
#define randomize() srand((unsigned)time(NULL));
#define random(p) ((int)(rand()*p/RAND_MAX))
int Matr1[r][r]; /* матрица1 */
int Matr2[r][r]; /* матрица2 */
int main(void)
{
 short i, j; /* индексы */
 /* заполнение матрицы случайными числами */
 randomize(); /* инициализация rand */
 for (i=0; i<9; i++)
  for (j=0; j<9; Matr1[i][j++]=random(100));
 /* распечатка исходной матрицы */
 printf("Исходная матрица:\n");
 for (i=0; i<9; i++, printf("\n"))
  for (j=0; j<9; printf("%3d  ", Matr1[i][j++]));

 for (i=0; i<9; i++)
  for (j=0; j<9; j++)
   Matr2[j][8-i]=Matr1[i][j];
 /* распечатка полученной матрицы */
 printf("Полученная матрица:\n");
 for (i=0; i<9; i++, printf("\n"))
  for (j=0; j<9; printf("%3d  ", Matr2[i][j++]));
 return 0;
}
Компилируется) Но что-то с задержкой теперь, не выводить на экран результат...мигает и всё
Nice_nastya вне форума Ответить с цитированием
Старый 22.05.2011, 17:29   #6
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Перед выходом из программы getchar(); поставьте...
Код:
getchar();
return 0;
Spawn™Production® вне форума Ответить с цитированием
Старый 22.05.2011, 17:30   #7
N1KeL
Пользователь
 
Аватар для N1KeL
 
Регистрация: 20.04.2009
Сообщений: 58
По умолчанию

Или
Код:
system("pause");
N1KeL вне форума Ответить с цитированием
Старый 22.05.2011, 17:39   #8
Nice_nastya
 
Регистрация: 16.03.2011
Сообщений: 5
По умолчанию

Не помогает...
И стал еще ошибку выдавать, в строчке

Код:
for (j=0; j<9; Matr1[i][j++]=random(100));
Nice_nastya вне форума Ответить с цитированием
Старый 22.05.2011, 17:41   #9
Nice_nastya
 
Регистрация: 16.03.2011
Сообщений: 5
По умолчанию

А нет, всё хорошо, это у меня прога заглючила, перезапустила и всё отлично) Спасибо, Вам)
Nice_nastya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поворот матрицы на 90 градусов Альбиша Помощь студентам 2 26.05.2010 01:19
Поворот на 90 градусов против часовой стрелки Lindemann Общие вопросы .NET 1 04.01.2010 19:30
Поворот матрицы на 90 гладусов и кое-что еще... Vlad89 Помощь студентам 0 25.12.2009 09:40
Матрицы. Скажите что не так!! Ольчик Общие вопросы Delphi 2 14.11.2008 12:08
поворот bitmapa на n градусов DmT Общие вопросы C/C++ 1 01.08.2008 02:09