Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 10.10.2018
Сообщений: 8
1

Задана матрица {aij} размерности N×N. Из ее элементов сформировать одномерный массив

03.03.2019, 21:38. Просмотров 1448. Ответов 2

Матрица змейкой сделал через while, но показывает ошибку 139 не могу понять, где ошибся

Название: вв.jpg
Просмотров: 23

Размер: 4.7 Кб

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 <iostream>
#include <string>
#include<iomanip>
 
using namespace std;
 
int main()
{
setlocale(LC_ALL, "Russian");
const unsigned int N=10;
int n,a[N][N],l,i,j,s;
l=0;
cout<<"Введите размерность матрицы NxN, где N=";
cin>>n;
int b[n*n];
for (i=0;i<n;i++){
    for (j=0;j<n;j++){
        cout <<"a["<< i+1 <<  "," << j+1 <<  "]=";
        cin >> a[i][j];
    }
}
s=n-1;
while (l!=n*n){   
    for(i=s;i!=n-s-1;i--){
        b[l]=a[i][s];
        l++;}
    for(i=s;i!=n-s-1;i--){
        b[l]=a[n-s-1][i];
        l++;}
    for(i=n-s-1;i!=s;i++){
        b[l]=a[i][n-s-1];
        l++;}
    for(i=n-s-1;i!=s-1;i--){
        b[l]=a[s][i];
        l++;}
    for(i=s;i!=n-s;i--){
        b[l]=a[i][s-1];
        l++;}
    s--;
    }
cout<<l;
for(i=0;i<l;i++){
    cout<<b[i];}
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2019, 21:38
Ответы с готовыми решениями:

Задана матрица {aij} размерности N*N. Из ее элементов сформировать одномерный массив
Пожалуйста помогите сделать эти задачи: 1. Задана матрица {aij} размерности N*N. Из ее элементов...

Задана матрица целых чисел A(n×n). Сформировать массив B(n) из максимальных элементов столбцов заданной матрицы
Задана матрица целых чисел A(n×n). Сформировать массив B(n) из максимальных элементов столбцов...

Задана матрица вещественных чисел A размерности n×n
Задана матрица вещественных чисел A размерности n×n. Поменять местами элементы, расположенные над...

Задана матрица вещественных чисел А размерности n×n
Задана матрица вещественных чисел А размерности n×n. Поменять местами элементы, расположенные над...

2
440 / 327 / 171
Регистрация: 01.07.2015
Сообщений: 1,162
03.03.2019, 22:54 2
Цитата Сообщение от Kuabi Посмотреть сообщение
где ошибся
Код
../src/main.cc:14:14: warning: ISO C++ forbids variable length array ‘b’ [-Wvla]
   int b[n * n];
               ^

Build Finished. 0 errors, 1 warnings
C++
1
int* b = new int[n * n];
0
1451 / 918 / 806
Регистрация: 30.04.2016
Сообщений: 3,092
04.03.2019, 00:20 3
Лучший ответ Сообщение было отмечено Kuabi как решение

Решение

Kuabi, здравствуйте! Не стал проверять ваш код, написал свой (в вашем стиле):

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
/*
Дана квадратная матрица размером n x n. 
Из ее элементов сформировать одномерный массив, заполняя его по спирали, начиная с правого нижнего угла матрицы и вверх.
*/
 
#include <iostream>
 
    using namespace std;
 
int main() {
    int n, k, t, i, j;
    cout << "Enter a matrix size:\n\n";
    cout << "n = ";
    cin >> n;
    int** a = new int*[n];
    for (i = 0; i < n; i++) {
        a[i] = new int[n] { 0 };
    }
    int* b = new int[n*n];
    cout << "\nEnter a matrix:\n\n";
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            cin >> a[i][j];
        }
    }
    k = t = 0;
    while (t < n * n) {
        for (i = n - k - 1; i >= k; i--) {
            b[t++] = a[i][n-k-1];
        }
        for (j = n - k - 2; j >= k; j--) {
            b[t++] = a[k][j];
        }
        for (i = k + 1; i < n - k - 0; i++) {
            b[t++] = a[i][k];
        }
        for (j = k + 1; j < n - k - 1; j++) {
            b[t++] = a[n-k-1][j];
        }
        k++;
    }
    cout << "\nOutput of the program:\n\n";
    for (i = 0; i < t; i++) {
        cout << b[i] << " ";
    }
    for (int i = 0; i < n; i++) {
        delete [] a[i];
    }
    delete [] a;
    delete [] b;
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2019, 00:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Задан одномерный массив из 16 элементов .Сформировать двухмерный массив 4×4, используя функцию преобразования любого
Здравствуйте. Помогите написать программу: Задан одномерный массив из 16 элементов. Сформировать...

Задан одномерный массив из 16 элементов. Сформировать двухмерный массив 4×4, в котором элементы увеличиваются слева напр
Задан одномерный массив из 16 элементов. Сформировать двухмерный массив 4×4, в котором...

Задана последовательность X = (x1, x2, …, x10). Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию. КАК ?

Дана квадратная матрица . Сформировать одномерный массив из элементов главной диагонали
Дана квадратная матрица . Сформировать одномерный массив из элементов главной диагонали.

Как выяснить сколько положительных элементов содержит матрица Aij где i , j = 1,.,N, Aij = sin ( i + j/2)
Дано натуральное число N. Выяснить сколько положительных элементов содержит матрица Aij где i , j =...

Задана матрица размером N×M, N,M<50. Получить массив B, присвоив его k-му элементу значение 0, если все элементы k-го ст
Задана матрица размером N×M, N,M&lt;50. Получить массив B, присвоив его k-му элементу значение 0, если...


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

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

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