Форум программистов, компьютерный форум CyberForum.ru

Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке - C++

Восстановить пароль Регистрация
 
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
23.11.2010, 14:25     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #1
Здравствуйте, у меня задание есть, не как не могу придумать решение проблемы, вот у меня есть программа
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
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
 
 
void main()
{
 
setlocale (LC_ALL, "Russian");
 
        int m[100],arr[10][10],n,k,f=0;//m[100]-одномерный масив в который переписую 2 мерный для сортировки,n-количество строк,k-столбцов;
        cout<<"Введите количе4ство строк,столбцов"<<endl;
        cin>>n;
        cin>>k;
        //цыкл ввода матрицы
        for(int i=0;i<n;i++)
                for(int j=0;j<k;j++)
                {
                        cout<<"Введите элемент матрици М["<<i+1<<"]["<<j+1<<"]"<<endl;
                        cin>>arr[i][j];
                }
        //переписование в одноменрый масив
        for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                        {
                        m[f]=arr[i][j];
                        f++;
                        }
        //сортировка по возростанию
         int trash = 0,count=n*k; 
 for (int i=0;i<count;i++)
  for (int j=0;j<count-i-1;j++) 
   if (m[j] > m[j+1])
    {
     trash=m[j]; 
     m[j]=m[j+1];
     m[j+1]=trash;
    }
   //вывод отсортированого одномерного масива
         for(int i=0;i<count;i++)
                 cout<<m[i]<<",";
                 cout<<endl;
вот полученый отсортерованый масив нужно переписать ползунком и спиралью по часовой стрелке, всё что находил, само создаёт и все числа от 1 до 9 в матрицу вносит ._. помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2010, 14:25     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке
Посмотрите здесь:

C++ Развернуть матрицу на 90o по часовой стрелке.
Повернуть матрицу по часовой стрелке C++
повернуть квадратную матрицу на 90 градусов по часовой стрелке C++
C++ Матрицу повернуть на 90 градусов по часовой стрелке на C++
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.11.2010, 14:42     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #2
переписование ползунком:

C++
1
2
3
4
5
6
7
8
9
10
11
12
f=0;
for(i=0; i<n; i++)
if(i%2==0)
{
for(j=0; j<n; j++)
arr[i][j]=m[f++];
}
else
{
for(j=n-1; j>=0; j--)
arr[i][j]=m[f++];
}
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
23.11.2010, 14:45  [ТС]     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #3
мне нужно не просто ползунком, а ещё и спиралью ._.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.11.2010, 14:48     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #4
Цитата Сообщение от Ang_07 Посмотреть сообщение
мне нужно не просто ползунком, а ещё и спиралью ._.
Сейчас напишем, если откроете тайну, где учитесь и в каком классе, или на каком курсе?
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
23.11.2010, 14:54  [ТС]     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #5
Первый курс ДИИТа
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.11.2010, 14:58     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #6
Ладно для первокурсников сегодня скидка, сейчас напишу. А Вы пока напишите так Вам или не так нужно:
- ползунком я так полагаю это змейкой?
- после переписования ползунком выводим на экран и после переписования спиралью по часовой стрелке тоже выводим на экран? Для наглядности.
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
23.11.2010, 15:01  [ТС]     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #7
нет просто переписать в 2 мерный массив, спиралью по часовой стрелке, ну.. у меня были идеи взять в общий цикл с условием выхода "i<n*k потом взять какуюто переменную чтобы подщитовать отступы тоесть с какого места начинать записывать... думал думал.. мозг вскипел О_о
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.11.2010, 15:11     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #8
Ang_07, Так что нужно? Просто спиралью по часовой стрелке? А то у меня и змейкой и спиралью уже готово.

Добавлено через 30 секунд
Цитата Сообщение от Ang_07 Посмотреть сообщение
мозг вскипел
Это я заметил
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
23.11.2010, 15:12  [ТС]     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #9
да просто спиралью по часовой стрелке
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.11.2010, 15:14     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #10
Проверяй:
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
f=0;
int n_i=n, n_j=n, ii=0, jj=0;
while(f<n*n)
{
    for(j=jj; j<n_j; j++)
        arr[ii][j]=m[f++];
    ii++;
    for(i=ii; i<n_i; i++)
        arr[i][n_j-1]=m[f++];
    n_j--;
    for(j=n_j-1; j>=jj; j--)
        arr[n_i-1][j]=m[f++];
    n_i--;
    for(i=n_i-1; i>=ii; i--)
        arr[i][jj]=m[f++];
    jj++;
}
cout<<end<<endl;
for(i=0; i<n; i++)
{
    for(j=0; j<n; j++)
        cout<<arr[i][j]<<" ";
    cout<<endl;
}
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
23.11.2010, 15:18  [ТС]     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #11
а можно описать пожалуста чтоб коректно в программу вставить.. ато ошибок куча ._. болие 30 (О_о)

пишет типа j,i необьявлен

cout<<end<<endl; в этом матюкаеться
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.11.2010, 15:25     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #12
Проверяй весь код:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
 
 
void main()
{
 
setlocale (LC_ALL, "Russian");
 
        int m[100],arr[10][10],n,k,f=0;//m[100]-îäГ*îìåðГ*ûé Г¬Г*Г±ГЁГў Гў êîòîðûé ïåðåïèñóþ 2 ìåðГ*ûé äëÿ ñîðòèðîâêè,n-êîëè÷åñòâî ñòðîê,k-ñòîëáöîâ;
        cout<<"Ââåäèòå êîëè÷å4Г±ГІГўГ® ñòðîê,ñòîëáöîâ"<<endl;
        cin>>n;
        cin>>k;
        //öûêë ââîäГ* Г¬Г*òðèöû
        for(int i=0;i<n;i++)
                for(int j=0;j<k;j++)
                {
                        cout<<"Ââåäèòå ýëåìåГ*ГІ Г¬Г*òðèöè ГЊ["<<i+1<<"]["<<j+1<<"]"<<endl;
                        cin>>arr[i][j];
                }
        //ïåðåïèñîâГ*Г*ГЁГҐ Гў îäГ*îìåГ*ðûé Г¬Г*Г±ГЁГў
        for( i=0;i<n;i++)
                for(int j=0;j<k;j++)
                        {
                        m[f]=arr[i][j];
                        f++;
                        }
        //ñîðòèðîâêГ* ГЇГ® âîçðîñòГ*Г*ГЁГѕ
         int trash = 0,count=n*k; 
 for (i=0;i<count;i++)
  for (int j=0;j<count-i-1;j++) 
   if (m[j] > m[j+1])
    {
     trash=m[j]; 
     m[j]=m[j+1];
     m[j+1]=trash;
    }
   //âûâîä îòñîðòèðîâГ*Г*îãî îäГ*îìåðГ*îãî Г¬Г*Г±ГЁГўГ*
         for( i=0;i<count;i++)
                 cout<<m[i]<<",";
                 cout<<endl;
    //
                 f=0;
int n_i=n, n_j=k, ii=0, jj=0;
while(f<count)
{
        for(int j=jj; j<n_j; j++)
                arr[ii][j]=m[f++];
        ii++;
        for(i=ii; i<n_i; i++)
                arr[i][n_j-1]=m[f++];
        n_j--;
        for(j=n_j-1; j>=jj; j--)
                arr[n_i-1][j]=m[f++];
        n_i--;
        for(i=n_i-1; i>=ii; i--)
                arr[i][jj]=m[f++];
        jj++;
}
cout<<endl<<endl;
for(i=0; i<n; i++)
{
        for(int j=0; j<k; j++)
                cout<<arr[i][j]<<" ";
        cout<<endl;
}
}
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
23.11.2010, 15:32  [ТС]     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #13
СБОЙ построения.

Затраченное время: 00:00:01.96
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

пишет типа i и j не обьявленные индификаторы и неопределены
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.11.2010, 15:36     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #14
Давай так:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
 
 
void main()
{
 
setlocale (LC_ALL, "Russian");
 
        int m[100],arr[10][10],n,k,f=0;//m[100]-îäГ*îìåðГ*ûé Г¬Г*Г±ГЁГў Гў êîòîðûé ïåðåïèñóþ 2 ìåðГ*ûé äëÿ ñîðòèðîâêè,n-êîëè÷åñòâî ñòðîê,k-ñòîëáöîâ;
        cout<<"Ââåäèòå êîëè÷å4Г±ГІГўГ® ñòðîê,ñòîëáöîâ"<<endl;
        cin>>n;
        cin>>k;
        //öûêë ââîäГ* Г¬Г*òðèöû
        for(int i=0;i<n;i++)
                for(int j=0;j<k;j++)
                {
                        cout<<"Ââåäèòå ýëåìåГ*ГІ Г¬Г*òðèöè ГЊ["<<i+1<<"]["<<j+1<<"]"<<endl;
                        cin>>arr[i][j];
                }
        //ïåðåïèñîâГ*Г*ГЁГҐ Гў îäГ*îìåГ*ðûé Г¬Г*Г±ГЁГў
        for(int i=0;i<n;i++)
                for(int j=0;j<k;j++)
                        {
                        m[f]=arr[i][j];
                        f++;
                        }
        //ñîðòèðîâêГ* ГЇГ® âîçðîñòГ*Г*ГЁГѕ
         int trash = 0,count=n*k; 
 for (int i=0;i<count;i++)
  for (int j=0;j<count-i-1;j++) 
   if (m[j] > m[j+1])
    {
     trash=m[j]; 
     m[j]=m[j+1];
     m[j+1]=trash;
    }
   //âûâîä îòñîðòèðîâГ*Г*îãî îäГ*îìåðГ*îãî Г¬Г*Г±ГЁГўГ*
         for(int i=0;i<count;i++)
                 cout<<m[i]<<",";
                 cout<<endl;
        //
                                 f=0;
int n_i=n, n_j=k, ii=0, jj=0;
while(f<count)
{
        for(int j=jj; j<n_j; j++)
                arr[ii][j]=m[f++];
        ii++;
        for(int i=ii; i<n_i; i++)
                arr[i][n_j-1]=m[f++];
        n_j--;
        for(int j=n_j-1; j>=jj; j--)
                arr[n_i-1][j]=m[f++];
        n_i--;
        for(int i=n_i-1; i>=ii; i--)
                arr[i][jj]=m[f++];
        jj++;
}
cout<<endl<<endl;
for(int i=0; i<n; i++)
{
        for(int j=0; j<k; j++)
                cout<<arr[i][j]<<" ";
        cout<<endl;
}
}
Ang_07
 Аватар для Ang_07
0 / 0 / 0
Регистрация: 09.11.2010
Сообщений: 47
23.11.2010, 15:41  [ТС]     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #15
если бы ещё описание было ._. ну ладно.. пойду мучать разбираться что да как, пасибо большое ^__^
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2010, 15:43     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке
Еще ссылки по теме:

C++ Заполнить квадратную матрицу по спирали по часовой стрелке
Проблема с выводом массива спиралью против часовой стрелки C++
Получить вторую матрицу путем поворота первой по часовой стрелке C++

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.11.2010, 15:43     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке #16
там не сложно
Yandex
Объявления
23.11.2010, 15:43     Переписать данные из массива в матрицу ползунком, и спиралью по часовой стрелке
Ответ Создать тему
Опции темы

Текущее время: 01:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru