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

Заполнить квадратную матрицу по спирали - C++

Восстановить пароль Регистрация
 
Sterka
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 15
09.05.2016, 11:56     Заполнить квадратную матрицу по спирали #1
Одномерный:
В заданном целочисленном массиве R(9) определить индекс наибольшего из нечетных по значению положительных элементов.
Двумерный:
Составить программу, которая заполняет квадратную матрицу порядка n натуральными числами 1,2,3,...,n2, записывая их в неё " по спирали" против часовой стрелки.

Помогите пожалуйста сделать!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2016, 11:56     Заполнить квадратную матрицу по спирали
Посмотрите здесь:

C++ Текст записывается в квадратную матрицу, а затем прочитывается по спирали, начиная с центра
Заполнить квадратную матрицу размером N x N по спирали C++
Заполнить матрицу из центра по спирали C++
C++ Заполнить квадратную матрицу от левого верхнего угла по спирали
C++ Заполнить квадратную матрицу по спирали по часовой стрелке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,195
Завершенные тесты: 1
09.05.2016, 12:24     Заполнить квадратную матрицу по спирали #2
См. ссылки внизу страницы
Armatus
 Аватар для Armatus
50 / 50 / 28
Регистрация: 24.03.2016
Сообщений: 358
Завершенные тесты: 4
09.05.2016, 12:28     Заполнить квадратную матрицу по спирали #3
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
#include <iostream> 
 
int main()
{
    using namespace std;
    int massCh[9] = { 1,2,3,4,5,6,7,8,9 };
    int nechet[9];
    int k = 0;
    for (int i = 0; i < 9; i++) {
        if ((massCh[i] % 2) != 0) {
            nechet[k] = massCh[i];
            k++;
        }   
    }
    for (int i = 0; i < k; i++) {
        cout << "nechetnie: " << nechet[i] << endl;
    }
    int max = nechet[0];
    for (int i = 0; i < k-1; i++) {
        if (max < nechet[i + 1])
            max = nechet[i + 1];
    }
    cout << "Max nechet:" << max << endl;
    
}
Desking
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 74
09.05.2016, 13:34     Заполнить квадратную матрицу по спирали #4
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
#include <iostream>
 
using namespace std;
 
 
int main() {
    int n,a,b;
    cin>>n>>a>>b;
    int mas[n][n];
    int k=1,j=0,s=1;
    while(j<n*n) {
        for (int i = s-1; i < n-(s-1); ++i) {
            mas[s-1][i] = k++;
            j++;
        }
        for (int i = s; i < n-(s-1); ++i) {
            mas[i][n - s] = k++;
            j++;
        }
        for (int i = n - (s+1); i >= s-1; i--) {
            mas[n - s][i] = k++;
            j++;
        }
        for (int i = n - (s+1); i >= s; i--) {
            mas[i][s-1] = k++;
            j++;
        }
        s++;
    }
 
    cout<<mas[a-1][b-1];
 
    return 0;
}
Только здесь за часовой
Fixer_84
238 / 128 / 72
Регистрация: 30.04.2016
Сообщений: 343
09.05.2016, 15:10     Заполнить квадратную матрицу по спирали #5
Sterka, а спираль закручивается или раскручивается?
Hilarior
18 / 17 / 12
Регистрация: 03.05.2016
Сообщений: 99
Завершенные тесты: 1
09.05.2016, 15:44     Заполнить квадратную матрицу по спирали #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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
int main(void) 
{
    setlocale(LC_ALL, "Russian");
 
    int i, j;
    int n1, n2;
    int max = 0, ind = 1;
 
    cout << "Введите размер одномерного массива A[N]: \n N = ";
    cin  >> n1;
 
    int* A1 = new int[n1];
 
    for (i = 0; i < n1; i++)
        A1[i] = 10 + rand()%89;
 
    for (i = 0; i < n1; i++)
        if (A1[i] % 2)
            if (A1[i] > max)
                max = A1[i];
    
    for (i = 0; i < n1; i++)
        cout << A1[i] << ' ';
 
    cout << '\n' << max << '\n';
 
    cout << "Введите размер двухмерного массива A[NxN]: \n N = ";
    cin  >> n2;
 
    int** A2 = new int*[n2];
 
    for (i = 0; i < n2; i++)
        A2[i] = new int[n2];
 
    for (i = 0; i < n2; i++)
        for (j = n2-1; j >= 0; j--)
            A2[i][j] = ind++;
 
    for (i = 0; i < n2; i++)
    {
        for (j = 0; j < n2; j++)
            cout << A2[i][j] << ' ';
 
        cout << '\n';
    }
 
    cout << endl;
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2016, 15:52     Заполнить квадратную матрицу по спирали
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Petrolion
24 / 24 / 7
Регистрация: 02.02.2016
Сообщений: 124
09.05.2016, 15:52     Заполнить квадратную матрицу по спирали #7
Sterka, Fixer_84 правильно уточнил.
Т.е. интересует место старта заполнения и:
При раскрутке при нечетном n направление первого шага.
При закрутке угол из которого стартуем.
Yandex
Объявления
09.05.2016, 15:52     Заполнить квадратную матрицу по спирали
Ответ Создать тему
Опции темы

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