М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
evgenypuchnin2
evgenypuchnin2
05.06.2023 01:55 •  Информатика

На языке программирования с ! 1 программа должна удовлетворять следующим требованиям: 1. массивы могут генерироваться автоматически, если в не оговорено иное. оставшиеся исходные данные должны вводиться с клавиатуры по запросу. 2. необходимо работать только через указатели и функции. 3. все значения функций должны быть перенаправлены в качестве параметров. 4. на экране должны храниться как исходные данные так и результат. само напишите функцию, которая в квадратной матрице сдвигает крайние элементы по кольцу, то есть первая строка заменяет последний столбец, последний столбец-последней строкой, последняя строка-первым столбцом, а первый столбец-первой строкой. есть еще , если хорошо разбираетесь качественный ответ обязательно отмечу лучшим. могу дублировать если нужно больше

👇
Ответ:
ирка137
ирка137
05.06.2023

Не совсем понял всех условий, например "все значения функций должны быть перенаправлены в качестве параметров", по этому если это условие не выполнено - объясни мне что это такое и я переделаю.

Не делал итераторы цикла динамическими ибо это не имеет смысла, остальные переменные я использовал как указатели.

Тестировал на GNU GCC, всё работает, писал на чистой Си.

Мой вариант решения:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

//Создание нашей матрицы

int** NewMatrix(int *row, int* col)

{

   int** matrix = new int*[*col];

   for(int i = 0; i < *col; ++i)

   {

       matrix[i] = new int[*row];

   }

   return matrix;

}

//удаление матрицы

void DestroyMatrix(int **matrix, int *col)

{

   for(int i = 0; i < *col; ++i)

   {

       delete[]matrix[i];

   }

   delete[]matrix;

}

//заполнение матрицы случайными числами

int ** Random(int**matrix, int* col, int *row)

{

   srand(time(0));

   for(int i = 0; i < *col; ++i)

   {

       for(int j = 0; j < *row; ++j)

       {

           matrix[i][j] = rand()%10;

       }

   }

   return matrix;

}

//вывести матрицу на экран

void ShowMatrix(int**matrix, int* col, int *row)

{

   for(int i = 0; i < *col; ++i)

   {

       for(int j = 0; j < *row; ++j)

       {

           printf("%d ",matrix[i][j]);

       }

       printf("\n");

   }

}

//функция сдвигает крайние элементы по кольцу

int **Roll(int**matrix, int *col, int *row)

{

   int **mx = NewMatrix(row,col);

   //копирование элементов с верхней строки в последний столб

   for(int i = 0; i < *col; ++i)

   {

       mx[i][*col-1] = matrix[0][i];

   }

   //копирование последнего столба в последнюю строку

   for(int i = 0, j = *col-1; i < *col; ++i,j--)

   {

       mx[*col-1][i] = matrix[j][*col-1];

   }

   //копирование последней строки в первый столб

   for(int i = 0; i < *col; ++i)

   {

       mx[i][0] = matrix[*col-1][i];

   }

   //копирование первого столба в первую строку

   for(int i = 0, j = *col-1; i < *col; ++i,j--)

   {

       mx[0][i] = matrix[j][0];

   }

   //копирование остальных элементов в середине матрицы

   for(int i = 1; i < *col-1; ++i)

   {

       for(int j = 1; j < *row-1; ++j)

       {

           mx[i][j]=matrix[i][j];

       }

   }

   //удаление лишней матрицы

   DestroyMatrix(matrix,col);

   return mx;

}

int main()

{

   int *row = new int(5);

   int *col = new int(5);

   int **mx = NewMatrix(row,col);

   mx = Random(mx,col,row);

   ShowMatrix(mx,col,row);

   mx = Roll(mx,col,row);

   printf("\nRolling...\n\n");

   ShowMatrix(mx,col,row);

   DestroyMatrix(mx,col);

   delete row;

   delete col;

   system("pause");

}

4,4(73 оценок)
Открыть все ответы
Ответ:
ПоЛИнА10571
ПоЛИнА10571
05.06.2023
Using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1 {
class Program
    { static void Main(string[] args)
{
Console.BackgroundColor = ConsoleColor.Black;
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine();
            Console.WriteLine("Hello, World!");
// Ожидание нажатия клавиши Enter перед завершением работы Console.ReadLine();
        }
    }
 }

Данная программа откроет консоль и будет выводить текст "Hello, World". Текст можно изменить, а комментарий удалить.
4,4(13 оценок)
Ответ:
masha1234567874
masha1234567874
05.06.2023

Лента в Microsoft Word позволяет максимально быстро получить доступ к наиболее часто используемым командам. Лента содержит огромное количество команд, которые разбиты по смысловым группам. В этом уроке Вы узнаете, из каких вкладок состоит Лента, а также научитесь скрывать ее, чтобы увеличить рабочую область Word на экране монитора.

Если Вы ранее пользовались Word 2010 или 2007, тогда Word 2013 покажется Вам знакомым. В нем используются все те же Лента и Панель быстрого доступа, где можно найти команды для наиболее часто используемых задач, а также представление Backstage.

Объяснение:

4,4(18 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ