Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SNkMaster
1 / 1 / 0
Регистрация: 21.12.2007
Сообщений: 5
#1

Поворот двумерного массива - C++

21.12.2007, 21:42. Просмотров 3863. Ответов 5
Метки нет (Все метки)

Дана квадратная матрица. нужно переместить числа так, чтобы эта операция была эквивалентна повороту массива на 90 градусов по часовой стрелке

Если не сложно помогите! никак зависимость не могу найти
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2007, 21:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поворот двумерного массива (C++):

Поворот динамического двумерного массива - C++
Доброго времени суток. Столкнулся с такой проблемой что не могу развернуть динамический двумерный массив. Результат выводит плачевный: ...

Поворот двумерного вектора на 45 градусов - C++
Нашел решение близко похожее на нужное, но поворот происходит на 90 градусов. Сначала решил по глупости сделать отсчет не через...

Функции двумерного массива. Транспонировать матрицу через ввод вывод функции двумерного массива. - C++
Транспонировать матрицу через ввод вывод функции двумерного массива.Сначала вывести ее,а потом провести транспонирование.

поворот массива на 90° - C++
всем привет. помогите разобраться с одной простенькой задачкой. есть массив. сделал зеркальный поворот массива, но теперь нужно...

Поворот массива на 45% - C++
Здравствуйте уважаемые форумчане, у меня появилась задачка одна, нужно Заполнить двумерный массив размерности nxn по заданному правилу: ...

Поворот прямоугольного массива - C++
Помогите пожалуйста с решением Поворот прямоугольного массива Дан прямоугольный массив размером 3×4. Поверните его на 90 градусов по...

5
./run
38 / 10 / 2
Регистрация: 06.12.2007
Сообщений: 133
22.12.2007, 03:09 #2
Если правильно понял задачу то примерно так :
Код
#include  <iostream>
#include  <conio.h>

using namespace std;

void main() {

    const int N  = 100;
    int mass[N][N] = {0};
    int transp_mass[N][N] = {0};
    int count;

    cout<<"Input size matrix";
    cin>>count;
    cout<<endl;

    for (int i = 0;i<count;i++)
    {
        for (int j = 0;j<count;j++)
        {
            cout<<"Input element ["<<i<<"]["<<j<<"] :";
            cin>>mass[i][j];
            cout<<endl;
        }
    }

    for (int i = 0;i<count;i++)
    {
        for (int j = 0;j<count;j++ )
        {
            transp_mass[i][j] = mass[j][i];
        }
    }

    for (int i = 0;i<count;i++)
    {
        for (int j = 0;j<count;j++)
        {
            cout<<transp_mass[i][j]<<" ";
        }
        cout<<endl;
    }
    getch();
}
0
SNkMaster
1 / 1 / 0
Регистрация: 21.12.2007
Сообщений: 5
24.12.2007, 08:58  [ТС] #3
спасибо, но это не совсем то!
напр. дана матрица 3х3:
1 2 3
4 5 6
7 8 9

должно получиться:
7 4 1
8 5 2
9 6 3
0
./run
38 / 10 / 2
Регистрация: 06.12.2007
Сообщений: 133
24.12.2007, 10:03 #4
Ну тогда так
Код
#include <iostream>
#include <conio.h>

using namespace std;

void main() {

    const int N  = 100;
    int mass[N][N] = {0};
    int transp_mass[N][N] = {0};
    int count;

    cout<<"Input size matrix";
    cin>>count;
    cout<<endl;

    for (int i = 0;i<count;i++)
    {
        for (int j = 0;j<count;j++)
        {
            cout<<"Input element ["<<i<<"]["<<j<<"] :";
            cin>>mass[i][j];
            cout<<endl;
        }
    }

    int f = count;
    for (int i = 0;i<count;i++)
    {
        f = count-1;
        for (int j = 0;j<count;j++ )
        {
            transp_mass[i][f] = mass[j][i];
            f--;
        }
    }

    for (int i = 0;i<count;i++)
    {
        for (int j = 0;j<count;j++)
        {
            cout<<transp_mass[i][j]<<" ";
        }
        cout<<endl;
    }
    getch();
}
2
SNkMaster
1 / 1 / 0
Регистрация: 21.12.2007
Сообщений: 5
24.12.2007, 20:26  [ТС] #5
ОГРОМНОЕ СПАСИБО
1
Bizzart
13.06.2011, 23:06 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
using namespace std;
 
void main()
{
    int x;
    int chuslo = 1;
    int a[5][5];
    int b[5][5];
    for(int i=0;i<5;i++)
    {
        for(int j=0;j<5;j++)
        {
            a[i][j] = chuslo;
            chuslo++;
        }
    }
    for(int i=0;i<5;i++)
    {
        x = 4;
        for(int j=0;j<5;j++)
        {
            b[i][j] = a[x][i];
            cout<<b[i][j]<<" ";
            x--;
        }
        cout<<endl;
    }
    cin>>a[0][0];
}
13.06.2011, 23:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2011, 23:06
Привет! Вот еще темы с ответами:

Зеркальный поворот массива - C++
всем привет. помогите плс разобраться с одной простенькой задачкой. есть квадратный массив. нужно повернуть его зеркально, например: ...

Поворот массива на 90 градусов по часовой стрелке - C++
Всем привет! Помогите найти ошибку, программа должна поворачивать целочисленный массив на 90 градусов по часовой стрелке Пример 1 2 3 ...

Найти номер строки и столбца двумерного массива для минимального элемента этого массива - C++
Visual C ++ 2005 Express Edition помогите пожалуйста

Метод-член класса для создания одномерного массива из отрицательных элементов двумерного динамического массива - C++
Помогите, пожалуйста, нужно разработать метод-член класса для создания одномерного массива из отрицательных элементов двумерного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru