Top.Mail.Ru
Ответы

Помогите с задачей на С++ пожалуйста

Кто поможет с задачей буду очень благодарен ! Заранее спасибо !

Задача:

Дана квадратная матрица A порядка M. Начиная с элемента A1,1, вывести ее элементы следующим образом («уголками»): все элементы первого столбца; элементы последней строки, кроме первого (уже выведенного) элемента; оставшиеся элементы второго столбца; оставшиеся элементы предпоследней строки и т.д.; последним выводится элемент A1,M.

Формат ввода
Сперва вводится значение M, определяющее количество строк и столбцов матрицы. Затем построчно вводятся все M×M элементов матрицы. Значения элементов матрицы могут быть вещественными.

Формат вывода
Вывести все M×M элементов матрицы в порядке, определенный условиями задания.

Пример 1

Ввод
3
1 2 3
4 5 6
7 8 9

Вывод
1 4 7 8 9 2 5 6 3

Пример 2

Ввод
4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

Вывод
1 5 9 13 14 15 16 2 6 10 11 12 3 7 8 4

По дате
По рейтингу
Аватар пользователя
Искусственный интеллект
123456789101112131415161718192021222324252627282930
 #include <iostream> 
using namespace std; 
int main() { 
    size_t n; 
    cin >> n; 
    auto mx = new int* [n]; 
    for (size_t i = 0; i < n; ++i) { 
        mx[i] = new int[n]; 
        for (size_t j = 0; j < n; ++j) { 
            cin >> mx[i][j]; 
        } 
    } 
    puts(""); 
    for (size_t j = 0; j < n; ++j) { 
        size_t i = 0; 
        while (i < n - j) { 
            cout << mx[i][j] << ' '; 
            ++i; 
        } 
        --i; 
        for (size_t k = j + 1; k < n; ++k) { 
            cout << mx[i][k] << ' '; 
        } 
    } 
    puts(""); 
    for (size_t i = 0; i < n; ++i) { 
        delete[] mx[i]; 
    } 
    delete[] mx; 
} 
Аватар пользователя
Ученик

Ошибка на 5 тесте(

Аватар пользователя
Мудрец
12345678910111213141516
 #include <iostream> 
#include <vector> 
using namespace std; 
int main() 
{ 
	size_t n; 
	cin >> n; 
	vector <int> mtrx(n * n); 
	for (auto& i : mtrx) cin >> i; 
	putc('\n',stdout); 
	for (size_t i = 0; i < n; i++) //col 
	{ 
		for (size_t j = 0; j < n - i; j++) cout << mtrx[j * n + i] << " "; //str 
		for (size_t j = i + 1; j < n; j++) cout << mtrx[(n - i - 1) * n + j] << " "; //col 
	} 
} 
Аватар пользователя
Ученик

Ошибка на 5 тесте(



Видео по теме