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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2013, 23:25   #1
camel5
Пользователь
 
Аватар для camel5
 
Регистрация: 10.11.2013
Сообщений: 28
По умолчанию Помогите с написанием второй части кода

Дана действительная матрица порядка 2*n. Получить новую матрицу, переставляя ее блоки размера n*n в соответствии с рисунком:
Мой код:
Код:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define M 4
#define N 4
#define NL printf("\n")
using namespace std;

int main()
{
	int i,j;
	int a[2*M][2*N],b[2*M][2*N];
	srand(unsigned(time(NULL)));  /*Строим массив а*/

	for(i=0;i<2*M;i++)
		for(j=0;j<2*M;j++)
			a[i][j]=rand()%2;  /*Выводим массив а*/

	for(i=0;i<2*M;i++)
	{
		for(j=0;j<2*N;j++)
			printf("%2d", a[i][j]);
		NL;
	}                                    /*Строим массив b*/
	for(i=0;i<M;i++)
		for(j=0;j<N;j++)
		{
			int n=0;
			a[i][j]=a[i][j+n];
			a[i][j+n]=a[i+n][j];
			a[i+n][j]=a[i+n][j+n];
			a[i+n][j+n]=a[i][j];
			а[i][j]=b[i][j];
		}                         /*выводим массив b*/
		for(i=0;i<2*M;i++)
		{
			for(j=0;j<2*N;j++)
				printf("%2d", b[i][j]);
			NL;
		}
		return 0;
}
Cпасибо за просмотр.
Изображения
Тип файла: jpg 34.jpg (4.5 Кб, 63 просмотров)
camel5 вне форума Ответить с цитированием
Старый 01.12.2013, 23:55   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

1) Что за вторая часть кода?
2) Не очень верится, что это Ваш код (в условии ничего не говорилось о переменной M)
3) Переставить нужно так?
Код:
1 2        4 3
3 4   ->   1 2
Только цикл перестановки:
Код:
for(i = 0; i < M; ++i)
  for (j = 0;j < N; ++j) {
    int c = a[i][j];
    a[i][j] = a[i + M][j + N];
    a[i + M][j + N] = a[i][j + M];
    a[i][j + M] = a[i + N][j];
    a[i + N][j] = c;
  }
Не проверял.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 02.12.2013 в 00:08.
BDA вне форума Ответить с цитированием
Старый 02.12.2013, 00:48   #3
camel5
Пользователь
 
Аватар для camel5
 
Регистрация: 10.11.2013
Сообщений: 28
По умолчанию

То есть получается следующее:
Код:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define M 4
#define N 4
#define NL printf("\n")
using namespace std;

int main()
{
	int i,j,c;
	int a[M][N];
	srand(unsigned(time(NULL)));  /*Строим массив а*/

	for(i=0;i<M;i++)
		for(j=0;j<M;j++)
			a[i][j]=rand()%2;  /*Выводим массив а*/

	for(i=0;i<M;i++)
	{
		for(j=0;j<N;j++)
			printf("%2d", a[i][j]);
		NL;
	}                                    /*Строим массив b*/
	
	for(i = 0; i < M; ++i)
       for (j = 0;j < N; ++j)
	   {
        int c = a[i][j];
        a[i][j] = a[i + M][j + N];
        a[i + M][j + N] = a[i][j + M];
        a[i][j + M] = a[i + N][j];
        a[i + N][j] = c;
  }
		                        /*выводим массив */
		for(i=0;i<2*M;i++)
		{
			for(j=0;j<2*N;j++)
				printf("%2d", c);
			NL;
		}
		return 0;
}
camel5 вне форума Ответить с цитированием
Старый 02.12.2013, 01:01   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Ох, что-то Вы все поломали. Насчет вопроса "так?". А Вы запустите. Вряд ли результат Вам понравится. Делаете следующее:
Выбрасываете окончательно M (в функции main все M замените на N)
Размеры массива задайте правильно (как в условии сказано)
Заполните массив не рандомными числами, а 2 * N * i + j (чтобы все числа были различны, и было понятно, как элементы перенеслись)
Выводите элементы массива, а не переменную с
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 02.12.2013, 19:24   #5
camel5
Пользователь
 
Аватар для camel5
 
Регистрация: 10.11.2013
Сообщений: 28
По умолчанию

Код:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define N 4
#define N 4
#define NL printf("\n")
using namespace std;

int main()
{
	int i,j;
	int a[N][N];
	srand(unsigned(time(NULL)));  /*Строим массив а*/

	for(i=0;i<N;i++)
		for(j=0;j<N;j++)
			a[i][j]=rand()%2;  /*Выводим массив а*/

	for(i=0;i<N;i++)
	{
		for(j=0;j<N;j++)
			printf("%2d", a[i][j]);
		NL;
	}                                    /*Строим массив b*/
	
	for(i = 0; i < N; ++i)
       for (j = 0;j < N; ++j)
	   {
        int c = a[i][j];
        a[i][j] = a[i + N][j + N];
        a[i + N][j + N] = a[i][j + N];
        a[i][j + N] = a[i + N][j];
		a[i][j]=c;

       }
		                        /*выводим массив */
	   for(i=0;i<N;i++)
		{
			for(j=0;j<N;j++)
				printf("%2d", a[i][j]);
			NL;
		}
		return 0;
}
camel5 вне форума Ответить с цитированием
Старый 02.12.2013, 22:17   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Уже лучше. Выбросите лишний дефайн с N, задайте размеры массива строго по условию (также изменятся цикл ввода и вывода), можете оставить и свое заполнение (просто оно не информативно).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 02.12.2013, 22:41   #7
camel5
Пользователь
 
Аватар для camel5
 
Регистрация: 10.11.2013
Сообщений: 28
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Уже лучше. Выбросите лишний дефайн с N, задайте размеры массива строго по условию (также изменятся цикл ввода и вывода), можете оставить и свое заполнение (просто оно не информативно).
Спасибо огромное
camel5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделение кода на части kilgore Общие вопросы Delphi 11 17.07.2017 14:53
Проблемы с написанием кода с указателями Lyubov18 Общие вопросы C/C++ 3 11.12.2011 17:19
JS для скрытия части кода lukoie JavaScript, Ajax 3 29.01.2010 09:34
Помогите с написанием кода! Al3x Общие вопросы C/C++ 2 09.04.2009 19:51