Транспонирование двумерной матрицы - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m=3;int n=3;int a[m][n];int b[m][n];int i,j,t;
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
a[i][j]= rand() %10+1;
printf("%d\t", a[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
b[i][j]= a[j][i];
printf("%d\t", b[i][j]);
}
printf("\n");
}
return 0;
}Решение задачи: «Транспонирование двумерной матрицы»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <time.h>
int main()
{
setlocale(LC_ALL,"rus");
srand(time(NULL));
int n=3,m=2,i,j;
int a[n][m],b[m][n];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
a[i][j]=rand()%10+1;
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
printf("\n");
for(i=0;i<m;i++) //обрати внимание, что переменные цикла тоже изменились
{
for(j=0;j<n;j++)
{
b[i][j]=a[j][i];
printf("%d ",b[i][j]);
}
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с языком C
- Установка русской локали для вывода информации
- Инициализация генератора случайных чисел
- Объявление и инициализация двумерной матрицы a динамическим массивом случайными значениями от 1 до 10
- Вывод значений матрицы a на экран
- Объявление и инициализация двумерной матрицы b таким же размером как и a, но с обратными индексами строк и столбцов
- Заполнение матрицы b значениями матрицы a с помощью обращения индексов
- Вывод значений матрицы b на экран
- Возврат 0 для завершения работы программы