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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обход матрицы змейкой 
:(
    Опции темы
djeak11
Дата 12.5.2016, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сама матрица 4 5 11 15
10 3 6 12
14 9 2 7
16 13 8 1
Суть программы должна быть в том чтобы вывести по порядку числа в данном случае 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15( через главную диагональ и по кривым )

Составиd программу я понял что она ходит по вихрю как переделать чтоб она по заданию шла?
Код
#include "stdafx.h"
#include <iomanip>
#include <conio.h>
#include <iostream>
using namespace std;

int main()

{
int p, j, i;

const int N = 4;

static int arr[N][N] = { { 4, 5, 11, 15 },//вводим матрицу

{ 10, 3, 6, 12 },

{ 14, 9, 2, 7 },

{ 16, 13, 8, 1 } };



for (p = 0; p<N / 2; p++) 

{
for (j = p; j <= N - p - 1; j++) 

cout << setw(4) << arr[p][j];



for (i = p + 1; i<N - p; i++) 

cout << setw(4) << arr[i][N - p - 1];



for (j = N - p - 2; j >= p; j--) 

cout << setw(4) << arr[N - p - 1][j];



for (i = N - p - 2; i >= p + 1; i--) 

cout << setw(4) << arr[i][p];



}

getchar();

return 0;

}


Модератор: не забываем пользоваться кнопочкой "Код"

Это сообщение отредактировал(а) bsa - 23.5.2016, 23:47
PM MAIL   Вверх
feodorv
Дата 13.5.2016, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

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



Цитата(djeak11 @  12.5.2016,  23:56 Найти цитируемый пост)
в данном случае 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15( через главную диагональ и по кривым )

16 выводить не нужно?


Цитата(djeak11 @  12.5.2016,  23:56 Найти цитируемый пост)
Составиd программу

Так не честно smile Если Вам завтра дадут матрицу уже 100x100, то Вы будете под неё готовить 100 циклов? Здесь нужно всего лишь нечто вроде:
Код

for( int i = 0; i < N; ++i)
{
  if( i == 0 ) // главная диагональ
    for( int j = N-1; j >= 0; --j) print( a[j][j] );
  else
  {
     for( int j = 0; j < N-i; ++j) print( a[j][j+i] );
     for( int j = N-1; j >= i; --j) print( a[j][j-i] );
  }
}



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

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

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

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

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


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

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


 




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


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

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