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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2015, 19:23   #1
northen Lights
Новичок
Джуниор
 
Регистрация: 12.01.2015
Сообщений: 1
По умолчанию Расположить одномерный массив по спирали

25 элементов в одномерном массиве, нужно создать двумерный массив, располагая элементы одномерного по спирали из центра.
Подробная схема в прикрепленном файле.
Завтра экзамен.
Огромное спасибо за любую помощь.
Изображения
Тип файла: jpg Безымянный.jpg (56.0 Кб, 149 просмотров)
northen Lights вне форума Ответить с цитированием
Старый 12.01.2015, 21:07   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Самый простой способ:
Код:
a[3,3] := c[1];
a[3,4] := c[2];
a[4,4] := c[3];
a[4,3] := c[4];
a[4,2] := c[5];
a[3,2] := c[6];
a[2,2] := c[7];
a[2,3] := c[8];
a[2,4] := c[9];
a[2,5] := c[10];
a[3,5] := c[11];
a[4,5] := c[12];
a[5,5] := c[13];
a[5,4] := c[14];
a[5,3] := c[15];
a[5,2] := c[16];
a[5,1] := c[17];
a[4,1] := c[18];
a[3,1] := c[19];
a[2,1] := c[20];
a[1,1] := c[21];
a[1,2] := c[22];
a[1,3] := c[23];
a[1,4] := c[24];
a[1,5] := c[25];
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.01.2015, 22:58   #3
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

как-то так
Код:
#include <iostream.h>;
#include <iomanip.h>
int const size = 49;
int array[size];

void main(){
//заполнить начальный одномерный массив
 for (int i = 0; i < size; i++) {
	array[i] = i + 1;
 }

 int const m = 7, n = 7;
 int a[m][n] = {0};//это будет закрученный массив
 int i = 1, j = 0, k = 0, value = size - 1;

//закручивание в спираль
 while (i <= size){//проверка на всякий случай 
	for (j = k; j < (m - k); j++ ){
		++i;
		a[k][j] = array[value--];
		}
	if (i >= size  ) {//конец закручивания
		break;
		}
	for (j = k+1; j < (n - k); j++){
		++i;
		a[j][m-k-1] = array[value--];
		}
	for (j = m - k - 2; j >= k; j--){ 
		++i;
		a[n-k-1][j] = array[value--];
		}	
	for (j = n - k - 2; j >= k + 1; j--){
		++i;
		a[j][k] = array[value--];
		}
	++k;
	}
//печать
 for (int i = 0; i < m; i++) {
	 for (int j = 0; j < n; j++) {
		cout << setw(4) << a[i][j];
	 }
	 cout << endl << endl;
 }
system("pause");
}
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти одномерный массив элементы которого равны минимальным значениям в строках исходной матрицы и одномерный массив элементы... Richik123 Microsoft Office Excel 1 16.10.2013 15:45
Двумерный массив: выборка чисел по спирали Rikoshet Помощь студентам 6 29.10.2012 16:27
массив С, состоящий из N элементов. Все отрицательные элементы массива перенести в его начало и расположить по убыванию ( Делфи ) zloykoreec Помощь студентам 0 17.05.2012 11:54
Заполнить массив по спирали BeSHyLLlka Помощь студентам 2 20.09.2011 09:57
Обойти массив по спирали начиная с центра Botan747 Паскаль, Turbo Pascal, PascalABC.NET 1 17.06.2011 15:49