Нужно написать программу на c++ по данному заданию (даю 100 баллов) Задан квадратный массив А из
N строк и N столбцов, N – нечетное число. В предложенном массиве можно выделить две диагонали. Эти диагонали очерчивают четыре треугольника с числами. Произвести замену верхнего и нижнего треугольников, правого и левого треугольников.Ответы на вопрос
#include <iostream>
using namespace std;
int main()
{
int N, N1;
cout << "kol-vo ctrok ";
cin >> N;
cout << "ko-lvo ctolbcov ";
cin >> N1;
int** mtrx = new int* [N1];
for (int i = 0; i < N; i++)
{
mtrx[i] = new int[N1];
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N1; j++)
{
cin >> mtrx[i][j];
}
}
cout << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N1; j++)
{
cout<< mtrx[i][j]<<" ";
}
cout << endl;
}
for (int i = 0; i <= trunc(N/2); i++)
{
for (int j = 0; j <= trunc(N1/2); j++)
{
int tmp = mtrx[N - 1 - i][N1-1-j];
mtrx[N - 1 - i][N1 - 1 - j] = mtrx[i][j];
mtrx[i][j] = tmp;
}
}
cout << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N1; j++)
{
cout << mtrx[i][j] << " ";
}
cout << endl;
}
for (int i = 0; i < N; i++)
{
delete[] mtrx[i];
}
delete [] mtrx;
return 0;
}
Конечно, я могу помочь вам с написанием программы на C++ для данного задания. Вот пример решения:
cpp#include <iostream>
const int MAX_SIZE = 100;
void swapTriangles(int A[][MAX_SIZE], int N) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
// Проверяем, находится ли элемент в одном из треугольников
if (i < N/2 && j < N/2 && i + j < N/2) {
// Меняем элементы между верхним и нижним треугольниками
int temp = A[i][j];
A[i][j] = A[N-i-1][j];
A[N-i-1][j] = temp;
}
else if (i >= N/2 && j >= N/2 && i + j >= N + N/2 - 1) {
// Меняем элементы между правым и левым треугольниками
int temp = A[i][j];
A[i][j] = A[i][N-j-1];
A[i][N-j-1] = temp;
}
}
}
}
void printArray(int A[][MAX_SIZE], int N) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
std::cout << A[i][j] << " ";
}
std::cout << std::endl;
}
}
int main() {
int N;
std::cout << "Введите размерность массива N (нечетное число): ";
std::cin >> N;
int A[MAX_SIZE][MAX_SIZE];
std::cout << "Введите элементы массива A:" << std::endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
std::cin >> A[i][j];
}
}
std::cout << "Исходный массив A:" << std::endl;
printArray(A, N);
swapTriangles(A, N);
std::cout << "Массив A после замены треугольников:" << std::endl;
printArray(A, N);
return 0;
}
В данной программе мы сначала вводим размерность массива N (нечетное число) и его элементы. Затем вызываем функцию swapTriangles, которая осуществляет замену треугольников в массиве. Функция printArray используется для вывода массива на экран.
Программа запрашивает ввод элементов массива построчно, разделенных пробелами. После ввода элементов выводит исходный массив и массив после замены треугольников.
Надеюсь, данное решение поможет вам. Если у вас возникнут вопросы, пожалуйста, дайте мне знать!
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
