Транспонировать матрицу - C (СИ) (77499)
Формулировка задачи:
Дана целочисленная прямоугольная матрица.
Получить транспонированную матрицу.
Помогите с программой
Решение задачи: «Транспонировать матрицу»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
int a[20][20];
int b[20][20];
short n, m, i, j;
srand(time(0));
do
{
printf("Chislo strok (2 < N < 20) N = ");
scanf("%d", &n);
}
while ((n > 20) || (n < 2));
do
{
printf("Chislo strok (2 < N < 20) N = ");
scanf("%d", &m);
}
while ((m > 20) || (m < 2));
puts("\n\n Ishodnaya matricza: \n\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
a[i][j] = rand() % 100;
b[j][i] = a[i][j];
printf(" %d", a[i][j]);
}
printf("\n");
}
puts("\n\n Transponirovannaya matricza: \n\n");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
printf(" %d", b[i][j]);
printf("\n");
}
puts("\n\n=======================\n\nPress ANY KEY!!!");
getch();
return 0;
}
Объяснение кода листинга программы
В этом коде осуществляется транспонирование матрицы. Это достигается путем перебора всех элементов матрицы и их переворачивания. Вот список действий, которые происходят в коде:
- Ввод размеров матрицы: с помощью функции scanf считываются два числа от пользователя - n и m. Эти числа представляют собой количество строк и столбцов матрицы соответственно.
- Инициализация матрицы a: создается матрица a размером n на m и заполняется случайными числами от 0 до 99 с помощью функции rand().
- Инициализация матрицы b: создается матрица b размером m на n, и все ее элементы устанавливаются равными соответствующим элементам матрицы a.
- Вывод исходной матрицы a: с помощью двух вложенных циклов for перебираются все элементы матрицы a, и они выводятся на экран через функцию printf.
- Вывод транспонированной матрицы b: с помощью двух вложенных циклов for перебираются все элементы матрицы b, и они выводятся на экран через функцию printf.
- Ожидание нажатия любой клавиши: с помощью функции getch() программа переходит в режим ожидания нажатия клавиши, и только после этого завершается. Важно отметить, что перед использованием функций scanf и printf необходимо включить заголовочный файл stdio.h, а перед использованием функции rand() - заголовочный файл stdlib.h. Кроме того, для обеспечения корректной работы программы необходимо убедиться, что матрицы a и b имеют одинаковую размерность, то есть количество строк матрицы a должно быть равно количеству столбцов матрицы b.