Поменять местами последнюю строчку и столбик - C (СИ)
Формулировка задачи:
Дано матрицу 5*5
Поменять местами последнюю строчку и столбик
Решение задачи: «Поменять местами последнюю строчку и столбик»
textual
Листинг программы
#include <stdio.h>
#include <Windows.h>
#include <time.h>
#define ROWS 5
#define COLUMNS 5
#define BORDER_HIGH 10
#define BORDER_LOW -10
void createMatrix(int *Matrix, int rows, int columns);
int main(void)
{
srand(time(NULL));
int i, j, k, z;
int *Matrix = malloc(ROWS*COLUMNS * sizeof(int));
createMatrix(Matrix, ROWS, COLUMNS);
int *temp_vector = malloc(ROWS * sizeof(int));
printf("\n\n");
for (i = ROWS-1, j = 0; j < COLUMNS; j++) {
temp_vector[j] = Matrix[i*COLUMNS + j];
}
for (i = ROWS - 1, j = 0; j < COLUMNS; j++){
Matrix[i*COLUMNS + j] = Matrix[j*COLUMNS + 4];
}
for (i = ROWS - 1, j = 0; j < COLUMNS; j++) {
Matrix[j*COLUMNS + 4] = temp_vector[j];
}
printf("\n\n");
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLUMNS; j++) {
printf("%3d ", Matrix[i*COLUMNS + j]);
}
printf("\n");
}
printf("\n");
system("pause");
return 0;
}
void createMatrix(int *Matrix, int rows, int columns) {
int i, j;
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
Matrix[i*columns + j] = rand() % (BORDER_HIGH + 1 - BORDER_LOW) + BORDER_LOW;
printf("%3d ", Matrix[i*columns + j]);
}
printf("\n");
}
}
Объяснение кода листинга программы
Код представляет собой программу на языке C, которая создает матрицу 5x5 случайных целых чисел в диапазоне от -10 до 10. Затем она меняет местами последнюю строку и последний столбец матрицы. Список действий:
- Включаем необходимые заголовочные файлы:
- stdio.h содержит функции для ввода и вывода данных
- Windows.h используется для работы с консолью
- time.h нужен для генерации случайных чисел
- Определяем константы:
- ROWS - количество строк в матрице (5)
- COLUMNS - количество столбцов в матрице (5)
- BORDER_HIGH - максимальное значение для чисел в матрице (10)
- BORDER_LOW - минимальное значение для чисел в матрице (-10)
- Создаем функцию createMatrix, которая заполняет матрицу случайными числами.
- В функции main создаем матрицу и заполняем ее с помощью функции createMatrix.
- Создаем временный вектор temp_vector, который будет использоваться для обмена значениями.
- Используем цикл для обмена значениями между матрицей и временным вектором.
- Выводим матрицу на экран с помощью функции printf.
- Ждем нажатия клавиши с помощью функции system(
pause). - Возвращаем 0, чтобы указать, что программа успешно завершилась.
- В функции createMatrix используем два вложенных цикла для заполнения матрицы случайными числами.
- Возвращаем 0, чтобы указать, что функция успешно завершилась.