Транспонировать матрицу - 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;
}

Объяснение кода листинга программы

В этом коде осуществляется транспонирование матрицы. Это достигается путем перебора всех элементов матрицы и их переворачивания. Вот список действий, которые происходят в коде:

  1. Ввод размеров матрицы: с помощью функции scanf считываются два числа от пользователя - n и m. Эти числа представляют собой количество строк и столбцов матрицы соответственно.
  2. Инициализация матрицы a: создается матрица a размером n на m и заполняется случайными числами от 0 до 99 с помощью функции rand().
  3. Инициализация матрицы b: создается матрица b размером m на n, и все ее элементы устанавливаются равными соответствующим элементам матрицы a.
  4. Вывод исходной матрицы a: с помощью двух вложенных циклов for перебираются все элементы матрицы a, и они выводятся на экран через функцию printf.
  5. Вывод транспонированной матрицы b: с помощью двух вложенных циклов for перебираются все элементы матрицы b, и они выводятся на экран через функцию printf.
  6. Ожидание нажатия любой клавиши: с помощью функции getch() программа переходит в режим ожидания нажатия клавиши, и только после этого завершается. Важно отметить, что перед использованием функций scanf и printf необходимо включить заголовочный файл stdio.h, а перед использованием функции rand() - заголовочный файл stdlib.h. Кроме того, для обеспечения корректной работы программы необходимо убедиться, что матрицы a и b имеют одинаковую размерность, то есть количество строк матрицы a должно быть равно количеству столбцов матрицы b.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы